RTEC 200 E Handbuch

Transcrição

RTEC 200 E Handbuch
ERTEC 200
Enhanced Real-Time Ethernet Controller
Handbuch
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
1
ERTEC 200 Handbuch
Version 1.1.0
Ausgabe (04/2007)
Haftungsausschluß
Der Inhalt der Druckschrift wurde auf Übereinstimmung mit der beschriebenen Hard- und
Software geprüft. Dennoch können Abweichungen nicht ausgeschlossen werden, so dass wir für
die vollständige Übereinstimmung keine Gewähr übernehmen. Die Angaben in der Druckschrift
werden jedoch regelmäßig überprüft. Notwendige Korrekturen sind in den nachfolgenden
Ausgaben enthalten. Für Verbesserungen und Vorschläge sind wir dankbar.
Copyright
© Siemens AG 2006. Alle Rechte vorbehalten
Weitergabe sowie Vervielfältigung dieser Unterlage, Verwertung und Mitteilung ihres Inhaltes sind
nicht gestattet, soweit nicht ausdrücklich zugestanden. Zuwiderhandlungen verpflichten zu
Schadenersatz. Alle Rechte vorbehalten, insbesondere für den Fall der Patenterteilung oder GMEintragung.
Alle Produkt- und Systemnamen sind Marken ihres jeweiligen Eigentümers und als solche zu
behandeln.
Technische Änderungen vorbehalten.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
2
ERTEC 200 Handbuch
Version 1.1.0
Vorwort
Zielgruppe des Handbuchs
Dieses Handbuch ist für Hardwareentwickler gedacht, die den ERTEC 200 für neue Produkte einsetzen wollen.
Erfahrung auf dem Gebiet Prozessoren, Designen von „Embedded Systemen“ und Ethernetkenntnisse sind dazu
notwendig. Es beschreibt ausführlich alle Funktionsgruppen des ERTEC 200 und gibt Hinweise, die beim Entwickeln der
eigenen PROFINET IO Device-Hardware zu beachten sind.
Für den Softwareentwickler dient das Handbuch als Nachschlagewerk. Für alle Funktionsgruppen sind die
Adressbereiche und Inhalte der Register ausführlich beschrieben.
Aufbau des Handbuchs
o
Kapitel 1 Überblick über die Architektur und die einzelnen Funktionsgruppen des ERTEC 200.
o
Kapitel 2 ARM946E-S Prozessorsystem.
o
Kapitel 3 Bussystem des ERTEC 200.
o
Kapitel 4 Peripherie des ERTEC 200.
o
Kapitel 5 Allgemeine Hardwarefunktionen.
o
Kapitel 6 External Memory Interface (EMIF).
o
Kapitel 7 Local Bus Unit (LBU).
o
Kapitel 8 DMA Controller.
o
Kapitel 9 Ethernet-PHYs.
o
Kapitel 10 Speicheraufteilung des ERTEC 200.
o
Kapitel 11 HW- Tools für Tests, Trace und Debugging.
o
Kapitel 12 Begriffs- und Literaturverzeichnis.
Gültigkeitsbereich des Handbuchs.
Das vorliegende Handbuch ist gültig für folgendes Produkt:
ERTEC 200 ab Erzeugnisstand 01
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
3
ERTEC 200 Handbuch
Version 1.1.0
Das Handbuch wird bei Bedarf aktualisiert. Den jeweils aktuellen Stand finden Sie im Internet unter
http://www.siemens.de/comdec.
Wegweiser
Um Ihnen den schnellen Zugriff auf spezielle Informationen zu erleichtern, enthält das Handbuch folgende Zugriffshilfen:
o
Am Anfang des Handbuchs finden Sie ein vollständiges Inhaltsverzeichnis und jeweils eine Liste aller im gesamten
Handbuch enthaltenen Abbildungen und Tabellen.
o
Im Anschluss an die Anhänge finden Sie ein Glossar, in welchem wichtige Fachbegriffe definiert sind, die in diesem
Handbuch verwendet werden.
o
Hinweise auf weitere Dokumente sind mit Hilfe von Literaturnummern in Schrägstrichen / Nr./ angegeben. Damit
können Sie dem Literaturverzeichnis am Ende des Handbuchs den genauen Titel der Dokumente entnehmen.
Weitere Unterstützung
Bei Fragen zur Nutzung des beschriebenen Bausteines, die Sie nicht in der Dokumentation beantwortet finden, wenden
Sie sich bitte an Ihre Siemens Ansprechpartner in den für Sie zuständigen Vertretungen oder Geschäftsstellen.
Fragen, Anmerkungen und Verbesserungen zum vorliegenden Handbuch bitte schriftlich an die oben angegebene EMail-Adresse der Hotline schicken.
Zusätzlich erhalten Sie allgemeine Informationen, aktuelle Produkt-Informationen, FAQ’s und Downloads, die beim
Einsatz nützlich sein können, im Internet unter folgenden Link:
http://www.siemens.de/comdec
Technischer Ansprechpartner für Deutschland / weltweit
Siemens AG
Automation & Drive
ComDeC
Tel.:
Tel.:
Fax:
E-Mail:
0911/750-2736
0911/750-2080
0911/750-2100
[email protected]
Hausadresse:
Briefadresse:
Würzburgerstr.121
Postfach 2355
90766 Fürth
90713 Fürth
Technischer Ansprechpartner für USA
PROFI Interface Center:
One Internet Plazza
PO Box 4991
Fax:
(423)- 262- 2103
Tel:
(423)- 262- 2576
E-Mail: [email protected]
Johnson City, TN 37602-4991
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
4
ERTEC 200 Handbuch
Version 1.1.0
Inhaltsverzeichnis
1
Einleitung ...................................................................................................................................... 8
1.1 Einsatzgebiete des ERTEC 200.....................................................................................................................8
1.2 Features des ERTEC 200..............................................................................................................................8
1.3 Aufbau des ERTEC 200.................................................................................................................................9
1.4 Gehäuse des ERTEC 200 .............................................................................................................................10
1.5 Signal-Funktions-Beschreibung .....................................................................................................................11
1.5.1 GPIO 0-31 und alternative Funktionen ..................................................................................................11
1.5.2 JTAG und Debug...................................................................................................................................12
1.5.3 Trace-Port .............................................................................................................................................12
1.5.4 Clock und Reset ....................................................................................................................................13
1.5.5 Test-Pins ...............................................................................................................................................13
1.5.6 EMIF (External Memory Interface).........................................................................................................13
1.5.7 LBU, MII-Interface oder ETM-Trace-Interface .......................................................................................15
1.5.8 Ethernet PHY1 und PHY2 .....................................................................................................................17
1.5.9 Stromversorgung ...................................................................................................................................18
2
ARM946E-S Prozessor................................................................................................................. 20
2.1 Aufbau des ARM946E-S................................................................................................................................20
2.2 Beschreibung des ARM946E-S .....................................................................................................................21
2.3 Arbeitsfrequenz des ARM946E-S ..................................................................................................................21
2.4 Cache-Struktur des ARM946E-S ...................................................................................................................21
2.5 Tightly Coupled Memory (TCM) .....................................................................................................................21
2.6 Memory Protection Unit (MPU) ......................................................................................................................22
2.7 Bus-Interface des ARM946E-S ......................................................................................................................22
2.8 ARM946E-S Embedded Trace Macrocell (ETM9) .........................................................................................22
2.9 ARM-Interrupt-Controller (ICU) ......................................................................................................................22
2.9.1 Priorisierung der Interrupts ....................................................................................................................23
2.9.2 Triggermodi ...........................................................................................................................................23
2.9.3 Maskierung der Interrupt-Eingänge .......................................................................................................23
2.9.4 Software-Interrupts für IRQ ...................................................................................................................23
2.9.5 Nested Interrupt Struktur .......................................................................................................................23
2.9.6 EOI End-Of-Interrupt ............................................................................................................................23
2.9.7 IRQ-Interrupt-Quellen ............................................................................................................................24
2.9.8 FIQ-Interrupt-Quellen ............................................................................................................................24
2.9.9 IRQ-Interrupts als FIQ-Interrupt-Quellen ...............................................................................................25
2.9.10 Interrupt-Control-Register ......................................................................................................................25
2.9.11 ICU-Register Beschreibung...................................................................................................................26
2.10 ARM946E-S - Register ..................................................................................................................................30
3
Bussystem des ERTEC 200......................................................................................................... 31
3.1 Kommunikationsbus „Multi-Layer AHB“ .........................................................................................................31
3.1.1 AHB-Arbiter ...........................................................................................................................................31
3.1.2 AHB-Master-Slave-Kopplung ................................................................................................................31
3.2 Peripheriebus APB.........................................................................................................................................31
4
Peripherie am APB-Bus ............................................................................................................... 32
4.1 BOOT-ROM ...................................................................................................................................................32
4.1.1 Booten von externem ROM ...................................................................................................................33
4.1.2 Booten über SPI ....................................................................................................................................33
4.1.3 Booten über UART ................................................................................................................................33
4.1.4 Booten über LBU ...................................................................................................................................33
4.1.5 Memory-Swapping.................................................................................................................................33
4.2 General Purpose IO (GPIO)...........................................................................................................................34
4.2.1 Adressbelegung GPIO-Register ............................................................................................................35
4.2.2 GPIO-Register Beschreibung ................................................................................................................35
4.3 Timer 0/1/2.....................................................................................................................................................37
4.3.1 Timer 0 und 1 ........................................................................................................................................37
4.3.1.1 Timer 0/1 – Interrupts.......................................................................................................................38
4.3.1.2 Timer 0/1 – Vorteiler ........................................................................................................................38
4.3.1.3 Kaskadierung der Timer 0/1.............................................................................................................38
4.3.2 Timer 2 ..................................................................................................................................................38
4.3.3 Adressbelegung Timer-Register ............................................................................................................39
4.3.4 Timer-Register Beschreibung ................................................................................................................39
4.4 F - Timer Funktion.........................................................................................................................................42
4.4.1 Adressbelegung F-Timer-Register.........................................................................................................43
4.4.2 F-Timer-Register Beschreibung.............................................................................................................43
4.5 Watchdog-Timer ............................................................................................................................................44
4.5.1 Watchdog-Timer 0 .................................................................................................................................44
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
5
ERTEC 200 Handbuch
Version 1.1.0
4.5.2 Watchdog-Timer 1 .................................................................................................................................44
4.5.3 Watchdog-Interrupt................................................................................................................................44
4.5.4 WDOUT0_N ..........................................................................................................................................44
4.5.5 WDOUT1_N ..........................................................................................................................................44
4.5.6 Watchdog-Register................................................................................................................................45
4.5.7 Adressbelegung Watchdog-Register .....................................................................................................45
4.5.8 Watchdog-Register Beschreibung .........................................................................................................45
4.6 UART-Schnittstelle.........................................................................................................................................47
4.6.1 Adressbelegung UART-Register ...........................................................................................................48
4.6.2 UART-Register Beschreibung ...............................................................................................................49
4.7 Synchrones Interface SPI ..............................................................................................................................53
4.7.1 Adressbelegung SPI-Register ...............................................................................................................54
4.7.2 SPI-Register Beschreibung ...................................................................................................................55
4.8 System-Control-Register................................................................................................................................57
4.8.1 Adressbelegung System-Control-Register ............................................................................................57
4.8.2 System-Control-Register Beschreibung ................................................................................................58
5
Allgemeine Hardware Funktionen .............................................................................................. 63
5.1 Takterzeugung und Taktversorgung ..............................................................................................................63
5.1.1 Taktversorgung im ERTEC 200.............................................................................................................63
5.1.2 Taktversorgung JTAG ...........................................................................................................................64
5.1.3 Taktversorgung PHYs und Ethernet-MACs ...........................................................................................64
5.2 Resetlogik des ERTEC 200 ...........................................................................................................................65
5.2.1 PowerOn-Reset .....................................................................................................................................65
5.2.2 Hardware-Reset ....................................................................................................................................66
5.2.3 Watchdog-Reset....................................................................................................................................66
5.2.4 Software-Reset......................................................................................................................................66
5.2.5 IRT-Switch-Reset ..................................................................................................................................66
5.3 Adressraum- und Quittungsverzug- Überwachung ........................................................................................67
5.3.1 AHB-Bus Überwachung.........................................................................................................................67
5.3.2 APB-Bus Überwachung.........................................................................................................................67
5.3.3 EMIF Überwachung...............................................................................................................................67
5.4 Konfigurationsmöglichkeiten am ERTEC 200 ................................................................................................67
6
External Memory Interface (EMIF) .............................................................................................. 69
6.1 Adressbelegung EMIF-Register .....................................................................................................................70
6.2 EMIF-Register Beschreibung .........................................................................................................................70
7
Local Bus Unit (LBU) ................................................................................................................... 74
7.1 Page-Range-Einstellung ................................................................................................................................75
7.2 Page-Offset-Einstellung .................................................................................................................................75
7.3 LBU-Adressmapping......................................................................................................................................76
7.4 Page-Control-Einstellung ...............................................................................................................................77
7.5 Host-Zugriffe auf den ERTEC 200 .................................................................................................................77
7.5.1 LBU Read zum ERTEC200 mit separater Read-/Writeleitung (Ready low aktiv) ..................................78
7.5.2 LBU Write zum ERTEC200 mit separater Read-/Writeleitung (Ready low aktiv)...................................79
7.5.3 LBU Read zum ERTEC200 mit gemeinsamer Read-/Writeleitung (Ready low aktiv)............................80
7.5.4 LBU Write zum ERTEC200 mit gemeinsamer Read-/Writeleitung (Ready low aktiv) ............................81
7.6 Host Interrupt Handling ..................................................................................................................................81
7.7 Adressbelegung LBU-Register.......................................................................................................................82
7.8 LBU-Register Beschreibung ..........................................................................................................................82
8
DMA-Controller ............................................................................................................................. 84
8.1 Adressbelegung DMA-Register......................................................................................................................85
8.2 DMA-Register Beschreibung..........................................................................................................................85
9
10
Multiport Ethernet PHY ................................................................................................................ 87
Speicherbeschreibung................................................................................................................. 90
10.1 Speicheraufteilung des ERTEC 200 ..............................................................................................................90
10.2 Detaillierte Speicherbeschreibung .................................................................................................................91
11
Test und Debugging..................................................................................................................... 93
11.1 Embedded Trace Macrocell ETM9................................................................................................................93
11.1.1 Tracemodi .............................................................................................................................................93
11.1.2 Features des ETM9-Modul ....................................................................................................................93
11.1.3 ETM9 – Register....................................................................................................................................93
11.2 Trace – Interface............................................................................................................................................94
11.3 JTAG – Schnittstelle ......................................................................................................................................94
11.4 Debugging über UART...................................................................................................................................94
12
Sonstiges ...................................................................................................................................... 95
12.1 Abkürzungen/ Begriffsverzeichnis:.................................................................................................................95
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
6
ERTEC 200 Handbuch
Version 1.1.0
12.2 Literaturverzeichnis:.......................................................................................................................................96
Abbildungsverzeichnis
Abbildung 1: ERTEC 200-Block-Diagramm......................................................................................................................... 9
Abbildung 2: ERTEC 200-Gehäusebeschreibung ............................................................................................................. 10
Abbildung 3: Aufbau ARM946E-S Prozessorsystem......................................................................................................... 20
Abbildung 4: GPIO Zelle am GPIO-Port [31:0] des ERTEC 200 ....................................................................................... 34
Abbildung 5: Blockschaltbild des F-Counter...................................................................................................................... 42
Abbildung 6: Watchdog-Timing ......................................................................................................................................... 44
Abbildung 7: Blockschaltbild UART................................................................................................................................... 47
Abbildung 8: Blockschaltbild SPI....................................................................................................................................... 53
Abbildung 9: Taktgenerierung im ERTEC 200 .................................................................................................................. 64
Abbildung 10: Taktversorgung der Ethernetanschaltung .................................................................................................. 65
Abbildung 11: Hochlaufphase der PLL.............................................................................................................................. 65
Abbildung 12: Verschaltung der Adressen zwischen Host und ERTEC 200-LBU ............................................................. 76
Abbildung 13: LBU-Read-Sequenz bei separater RD-/WR-Leitung .................................................................................. 78
Abbildung 14: LBU-Write-Sequenz bei separater RD-/WR-Leitung .................................................................................. 79
Abbildung 15: LBU-Read-Sequenz bei gemeinsamer RD-/WR-Leitung............................................................................ 80
Abbildung 16: LBU-Write-Sequenz bei gemeinsamer RD-/WR-Leitung............................................................................ 81
Tabellenverzeichnis
Tabelle 1: ERTEC 200 Pinbelegung und Signalbeschreibung .......................................................................................... 18
Tabelle 2: Übersicht IRQ-Interrupts................................................................................................................................... 24
Tabelle 3: Übersicht FIQ-Interrupts ................................................................................................................................... 24
Tabelle 4: Übersicht Interrupt-Control-Register................................................................................................................. 26
Tabelle 5: CP15 Register - Übersicht................................................................................................................................ 30
Tabelle 6: Übersicht AHB-Master-Slave Zugriffe............................................................................................................... 31
Tabelle 7: Zugriffsart und Datenbreite der Peripherie ....................................................................................................... 32
Tabelle 8: Auswahl der Downloadquelle ........................................................................................................................... 33
Tabelle 9: Übersicht GPIO-Register.................................................................................................................................. 35
Tabelle 10: Übersicht Timer-Register................................................................................................................................ 39
Tabelle 11: Übersicht F-Timer-Register ............................................................................................................................ 43
Tabelle 12: Übersicht WD-Register................................................................................................................................... 45
Tabelle 13: Baudraten UART bei FUARTCLK=50 MHz.......................................................................................................... 48
Tabelle 14: Übersicht UART-Register ............................................................................................................................... 48
Tabelle 15: Übersicht SPI-Register ................................................................................................................................... 54
Tabelle 16: Übersicht System-Control-Register ................................................................................................................ 58
Tabelle 17: Übersicht Takte des ERTEC 200.................................................................................................................... 63
Tabelle 18: Konfigurationen für ERTEC 200 ..................................................................................................................... 68
Tabelle 19: Übersicht EMIF-Register ................................................................................................................................ 70
Tabelle 20: Einstellung verschiedener Pagegrößen.......................................................................................................... 75
Tabelle 21: Einstellung verschiedener Offsetbereiche ...................................................................................................... 75
Tabelle 22: Adress-Mapping aus Sicht eines externen Host-Prozessors am LBU-Port .................................................... 76
Tabelle 23: Aufstellung der Zugriffe auf Adressbereiche von ERTEC 200........................................................................ 77
Tabelle 24: Hostzugriffe auf Adressbereiche von ERTEC 200.......................................................................................... 77
Tabelle 25: Timing für LBU-Lesezugriffe mit separater Read-/Writeleitung ...................................................................... 78
Tabelle 26: Timing für LBU-Schreibzugriffe mit separater Read-/Writeleitung .................................................................. 79
Tabelle 27: Timing für LBU-Readzugriffe mit gemeinsamer Read-/Writeleitung ............................................................... 80
Tabelle 28: Timing für LBU-Schreibzugriffe mit gemeinsamer Read-/Writeleitung............................................................ 81
Tabelle 29: Übersicht LBU-Register.................................................................................................................................. 82
Tabelle 30: DMA-Transfermodi ......................................................................................................................................... 84
Tabelle 31: Peripherie-Synchronisationssignale ............................................................................................................... 84
Tabelle 32: Übersicht DMA-Register................................................................................................................................. 85
Tabelle 33: Aufteilung der Speicherbereiche..................................................................................................................... 90
Tabelle 34: Detaillierte Beschreibung der Speichersegmente........................................................................................... 92
Tabelle 35: Steckerbelegung JTAG-Schnittstelle .............................................................................................................. 94
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
7
ERTEC 200 Handbuch
Version 1.1.0
1
Einleitung
Der ERTEC 200 ist für die Realisierung von PROFINET Devices mit RT- und IRT-Funktionalität vorgesehen. Mit seinem
integrierten ARM946-Prozessor, dem 2-Port-Ethernet-Switch mit integrierten PHYs und die Möglichkeit an ein LocalBus-Interface ein externes Host-Prozessor-Systeme anzuschließen, bietet er alle Voraussetzungen für die Realisierung
von PROFINET-Devices mit integrierter Switch-Funktionalität.
1.1
ƒ
ƒ
ƒ
Einsatzgebiete des ERTEC 200
Anschaltung für hochgenaue Antriebsregelung, auch für PC-basierte Systeme.
Dezentrale Peripherie mit realtimefähiger Ethernetanbindung.
PROFINET RT- und IRT-Funktionalität.
1.2
Features des ERTEC 200
Bei dem ERTEC 200 handelt es sich um einen hochperformanten Ethernet-Controller mit den folgenden integrierten
Funktionsgruppen:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
High-Performance ARM 946 Prozessor mit D-Cache, I-Cache, D-TCM Memory
Multi-LayerAHB-Bus Master/Slave mit AHB-Arbiter
IRT-Switch mit 64 kB Kommunikations-RAM
2 Ethernet-Kanäle mit integrierten PHY’s
Local-Bus-Unit (LBU) zur Anbindung eines externen Hostprozessors (bootfähig)
SDRAM-Controller
SRAM-Controller
DMA-Controller 1-kanalig
45 IOs parametrierbar
UART (bootfähig)
SPI (bootfähig)
3 Timer
F-Timer
Watchdog
IRQ- und FIQ-Interruptcontroller
PLL mit Taktversorgung
8 kByte BOOT-ROM
304-Pin FBGA – Gehäuse
verschiedene Testfunktionen
JTAG-Debug- und Traceschnittstelle
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
8
ERTEC 200 Handbuch
Version 1.1.0
1.3
Aufbau des ERTEC 200
In der folgenden Abbildung sind die Funktionsgruppen mit den gemeinsamen Kommunikationswegen dargestellt.
JTAG / Debug
48
TRACE_
CLK
7
ARM946ES
48
Local
Bus Unit
16 Bit
(LBU)
MemoryController
(EMIF)
Master
Slave
DMAController
Master
1
1
1
ETM
PLL
1
Reset
4
Test
APB
Interface
50MHz / 32 Bit
Master
Slave
Slave
1
Clock-Unit
1
BSTAP
with
I-Cache (8kByte),
D-Cache (4kByte),
D-TCM (4kByte)
ARMInterruptController
F_CLK
ARM9
clock
MUX
74
25MHz
REF_
CLK
100MHz
External
Memory Interface
50MHz
LBU / MII + SMI /
ETM / GPIO
14
13
Input
stage
Multi-Layer-AHB
Input
stage
50 MHz/32Bit
Slave
13
AHB/APB
Bridge
GPIO
Slave
Decode
Decode
Master
Input
stage
Slave
MUX/Arb.
MUX/Arb.
Input
stage
1 x UART
32
P
MUX/Arb.
5
P
3
16
16
Master
SC-Bus (50MHz)
MC-Bus (50MHz)
Switch Control
EthernetKanal
EthernetKanal
(Port 1)
(Port 2)
SPI1
Interface
8
3 x Timer,
Watchdog,
F-Timer
2
System
Control
32 Bit
32
GPIO,
UART,
SPI,
Timer,
Watchdog,
r
K-SRAM
t
s
64 kByte
2-Port Switch
Slave
SMI
Slave
Slave
Slave
Slave
AHBWrapper
Slave
32 Bit
Master
AHBWrapper
o
MII-1
MII-0
BootROM
(8 kByte)
PHY
PHY
(Port 1)
(Port 2)
7
MC-PLL Signals
PHY2
21
20
PHY1
ERTEC200
Abbildung 1: ERTEC 200-Block-Diagramm
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
9
ERTEC 200 Handbuch
Version 1.1.0
1.4
Gehäuse des ERTEC 200
Der ERTEC 200 wird in einem FBGA-Gehäuse mit 304 Pins geliefert. Der Abstand zwischen den Pins beträgt 0,8 mm.
Die Gehäusegröße ist 19mm x 19mm.
Abbildung 2: ERTEC 200-Gehäusebeschreibung
Verarbeitungshinweise zum Löten des ERTEC 200 sind in folgenden Dokumenten:
/10/
Lötanweisung für bleihaltigen Baustein.
/11/
Lötanweisung für bleifreien Baustein.
/12/
Erklärung des Codes für das Löten.
Bitte beachten Sie beim Umgang mit Bauteilen die Maßnahmen gegen elektrostatische Aufladung
(EGB – Elektrisch gefährdete Bauelemente).
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
10
ERTEC 200 Handbuch
Version 1.1.0
1.5
Signal-Funktions-Beschreibung
Pinbeschreibung ERTEC 200
Der Ethernet-Kommunikations-Baustein ERTEC 200 ist in einem 304–Pin FBGA–Gehäuse verfügbar. In diesem
Abschnitt werden die Signalnamen des ERTEC 200 beschrieben.
1.5.1
GPIO 0-31 und alternative Funktionen
Verschiedene Signale sind gemultiplext am selben Pin. Diese gemultiplexten Signale können bis zu vier unterschiedliche
Funktionen beinhalten. Die Parametrierung der alternativen Funktionen erfolgt in den GPIO-Registern
GPIO_PORT_MODE_L und GPIO_PORT_MODE_H (siehe Kapitel 4.2.2 ). Die Tabelle beschreibt alle Signale mit ihren
unterschiedlichen Funktionen und die dazugehörigen Pinnummern.
Nr.
Signal
-name
Alternative
Funktion 1
Alternative
Funktion 2
Alternative
Funktion 3
IO
(Reset)
Pull-
PINNr.
Bemerkung
B/O/(I)
up
D19
B/O/(I)
up
B20
P1-SPEED10LED_N
B/O/O/(I)
up
D17
GPIO oder PHY-LED
(O)
P2-SPEED10LED_N
B/O/O/(I)
up
B19
GPIO oder PHY-LED
(O)
B/O/(I)
up
A19
B/O/(I)
up
D16
B/O/O/O/(I)
up
B18
B/O/O/O/(I)
up
D15
B/O/(I)
up
B17
General Purpose I/O / Peripherie
1
GPIO0
2
GPIO1
3
GPIO2
4
GPIO3
5
GPIO4
6
GPIO5
P1-DUBLEXLED_N
P2-DUBLEXLED_N
P1-SPEED100LED_N
(TX/FX)
P2-SPEED100LED_N
(TX/FX)
P1-LINKLED_N
P2-LINKLED_N
7
GPIO6
P1-RX-LED_N
P1-TX-LED_N
8
GPIO7
P2-RX-LED_N
P2-TX-LED_N
9
GPIO8
UART-TXD
P1-ACTIVELED_N
P2-ACTIVELED_N
GPIO (interruptfähig)
oder PHY-LED (O)
GPIO (interruptfähig)
oder PHY-LED (O)
GPIO oder PHY-LED
(O)
GPIO oder PHY-LED
(O)
GPIO oder PHY-LED
(O)
GPIO oder PHY-LED
(O)
GPIO oder UART (O)
10
GPIO9
UART-RXD
B/I/(I)
up
A17
GPIO oder UART (I)
11
12
13
GPIO10
GPIO11
GPIO12
UART-DCD_N
UART-DSR_N
UART-CTS_N
B/I/(I)
B/I/(I)
B/I/(I)
up
up
up
B16
E16
A16
GPIO oder UART (I)
GPIO oder UART (I)
GPIO oder UART (I)
14
GPIO13
Reserviert
B/O/(I)
up
B15
GPIO
15
GPIO14
B/O/(I)
up
E15
16
GPIO15
B/O/(I)
up
E14
GPIO oder DEBUG (O)
GPIO oder Watchdog
(O)
17
GPIO16
DBGACK
WD_WDOUT0_
N
SPI1_SSPCTL
OE
B/O/(I)
up
A13
GPIO oder SPI1 (O)
18
GPIO17
SPI1_SSPOE
B/O/(I)
up
F14
GPIO oder SPI1 (O)
19
20
GPIO18
GPIO19
B/I/(I)
B/O/(I)
up
up
B12
D13
GPIO oder SPI1 (I)
GPIO oder SPI1 (O)
21
GPIO20
B/O/(I)
up
D11
GPIO oder SPI1 (O)
22
GPIO21
SPI1_SSPRXD
SPI1_SSPTXD
SPI1_SCLKOU
T
SPI1_SFRMOU
T
B/O/(I)
up
A11
GPIO oder SPI1 (O)
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
11
ERTEC 200 Handbuch
Version 1.1.0
Nr.
Signal
-name
Alternative
Funktion 1
Alternative
Funktion 2
Alternative
Funktion 3
IO
(Reset)
Pull-
PINNr.
Bemerkung
General Purpose I/O / Peripherie
B/I/ (I)
up
B11
GPIO oder SPI1 (I)
oder Debug (O)
Beim Booten von
Nand-Flash oder SPIROM wird dieser GPIO
als Chip Select
genutzt.
GPIO oder SPI1 (I)
Beim Booten von SPIFlash oder SPIEEPROM wird dieser
GPIO als Chip Select
genutzt.
GPIO oder MC_PLL (I)
B/O/ (I)
up
B9
GPIO oder MC_PLL (O)
B/O/(I)
B/O/(I)
B/O/(I)
B/O/(I)
up
up
up
up
A7
B10
F9
E9
TGEN_OUT6_N
B/O/(I)
up
B8
DBGREQ
B/I/ (I)
up
E8
GPIO oder MC_PLL (O)
GPIO oder MC_PLL (O)
GPIO oder MC_PLL (O)
GPIO oder MC_PLL (O)
GPIO (interruptfähig)
oder MC_PLL (O)
GPIO (interruptfähig)
oder DEBUG (I)
23
GPIO22
SPI1_SFRMIN
DBGACK
B/I/O/(I)
up
F10
24
GPIO23
SPI1_SCLKIN
Reserviert
B/I/O/(I)
up
D10
25
GPIO24
26
GPIO25
27
28
29
30
GPIO26
GPIO27
GPIO28
GPIO29
PLL_EXT_IN_N
TGEN_OUT1_N
*1
TGEN_OUT2_N
TGEN_OUT3_N
TGEN_OUT4_N
TGEN_OUT5_N
31
GPIO30
32
GPIO31
*1 Bei einer IRT-Applikation wird der Pin GPIO25 als alternative Funktion1 (TGEN_OUT1_N) parametriert und
der Synchron-Takt an diesem Pin ausgegeben. Dieser Pin muss für die Zertifizierung eines IRT fähigen
PROFINET IO Device auf der Hardware zugänglich sein (mandatory).
Verschiedene GPIO’s werden vom Evaluation Board EB200 bereits benutzt. Siehe dazu das Dokument /14/
Tabelle 6.
1.5.2
Nr.
JTAG und Debug
Signalname
IO
(Reset)
Pull-
PINNr.
Bemerkung
Debug / JTAG (BOUNDARY-SCAN)
33
34
35
36
37
38
TRST_N
TCK
TDI
TMS
TDO
SRST_N
I (I)
I (I)
I (I)
I (I)
O (O)
B (O)
up
U10
W7
U9
V7
V9
V8
39
TAP_SEL
I (I)
up
W8
IO
(Reset)
Pull-
PINNr.
1.5.3
Trace-Port
Nr.
Signalname
up
up
up
JTAG – Reset
JTAG – Clock
JTAG – Data In
JTAG – Test Mode Select
JTAG – Data Out
Hardware-Reset
Select TAP-Controller:
0: Boundary Scan-TAP-Contr.
Selektiert
1: ARM-TAP-Controller selektiert
oder Scan Clock (Scan Mode)
Bemerkung
Trace-Port/ Sonstiges
40
41
TRACECLK
Reserviert
B (O)
I (I)
up
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
AB4
U19
ETM Trace Clock
Pin mit GND beschalten
12
ERTEC 200 Handbuch
Version 1.1.0
1.5.4
Nr.
Clock und Reset
Signalname
IO
(Reset)
Pull-
PINNr.
Bemerkung
CLOCK- / RESET-ERZEUGUNG
42
43
44
CLKP_A
CLKP_B
F_CLK
45
46
1.5.5
Nr.
I (I)
O
I (I)
B14
D14
B13
Quarz-Anschluss
Quarz-Anschluss
F_CLK für F-Counter
REF_CLK
Abhängig
vom PIN
CONFIG[1]
A15
Tristate oder
Referenztakt Ausgang 25 MHz
RESET_N
I (I)
up
B7
PowerOn-Reset
IO
(Reset)
Pull-
PINNr.
Bemerkung
Test-Pins
Signalname
TEST
47
48
49
50
1.5.6
Nr.
TEST_N (3)
TMC1
(3)
TMC2
(3)
TACT_N (3)
I (I)
I (I)
I (I)
I (I)
up
dn
T5
G5
H6
J5
Testmode
Testkonfiguration
Testkonfiguration
TESTACT-TAP-Reset
EMIF (External Memory Interface)
Signalname
Alternative
Reset-Funktion
IO
(Reset)
Pull-
PINNr.
Bemerkung
EMIF (External Memory Interface)
51
DTR_N
BOOT0
52
OE_DRIVER_N
O (O)
D8
53
A0
O (O)
B4
54
A1
O (O)
A3
55
A2
O (O)
B3
56
A3
O (O)
B2
57
A4
O (O)
D4
58
A5
O (O)
C2
59
A6
O (O)
C1
60
A7
O (O)
D2
61
A8
O (O)
D1
62
A9
O (O)
E2
63
A10
O (O)
E1
64
A11
O (O)
F2
65
A12
O (O)
F1
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
B (I)
up
13
E7
Direction Signal für externen
Treiber oder Scan Clock (Scan
Mode)
ERTEC 200 - Bootmode (event.
Ext. PD nötig)
Enable Signal für externen Treiber
oder Scan Clock (Scan Mode)
Adress-Bit 0
SDRAM: Bank-Adress 0
Adress-Bit 1
SDRAM: Bank-Adress 1
Adress-Bit 2
SDRAM: Adress 0
Adress-Bit 3
SDRAM: Adress 1
Adress-Bit 4
SDRAM: Adress 2
Adress-Bit 5
SDRAM: Adress 3
Adress-Bit 6
SDRAM: Adress 4
Adress-Bit 7
SDRAM: Adress 5
Adress-Bit 8
SDRAM: Adress 6
Adress-Bit 9
SDRAM: Adress 7
Adress-Bit 10
SDRAM: Adress 8
Adress-Bit 11
SDRAM: Adress 9
Adress-Bit 12
SDRAM: Adress 10
ERTEC 200 Handbuch
Version 1.1.0
Nr.
Signalname
Alternative
Reset-Funktion
IO
(Reset)
Pull-
PINNr.
Bemerkung
EMIF (External Memory Interface)
66
A13
O (O)
G2
67
A14
O (O)
G1
68
A15
BOOT1
B (I)
dn
H2
69
A16
BOOT2
B (I)
dn
J2
70
A17
BOOT3
B (I)
up
K2
71
A18
CONFIG1
B (I)
up
K1
72
A19
CONFIG2
B (I)
up
E4
73
A20
CONFIG3
B (I)
dn
F4
74
A21
CONFIG4
B (I)
up
G4
75
A22
CONFIG5
B (I)
dn
H5
76
A23
CONFIG6
B (I)
up
H4
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
D15
D16
D17
D18
D19
D20
D21
D22
D23
D24
D25
D26
D27
D28
D29
D30
D31
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
up
M2
N2
P1
P2
R1
T2
U1
U2
V2
W1
W2
Y2
AA1
AA2
AB2
AA3
K4
K5
J6
K6
N5
N6
P6
R5
R6
P4
R4
T4
U4
W4
W5
W6
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
14
Adress-Bit 13
SDRAM: Adress 11
Adress-Bit 14
SDRAM: Adress 12
Adress-Bit 15
ERTEC 200 – Bootmode (event.
ext. PU nötig)
Adress-Bit 16 /
ERTEC 200 – Bootmode (event.
ext. PU nötig)
Adress-Bit 17 /
ERTEC 200 – Bootmode (event.
ext. PD nötig)
Adress-Bit 18 / ERTEC 200 –
System-Konfig. (event. ext. PD
nötig)
Adress-Bit 19 / ERTEC 200 –
System-Konfig. (event. ext. PD
nötig)
Adress-Bit 20 / ERTEC 200 –
System-Konfig. (event. ext. PU
nötig)
Adress-Bit 21 / ERTEC 200 –
System-Konfig. (event. ext. PD
nötig)
Adress-Bit 22 / ERTEC 200 –
System-Konfig. (event. ext. PU
nötig)
Adress-Bit 23 / ERTEC 200 –
System-Konfig. (event. ext. PD
nötig)
Daten-Bit 0
Daten-Bit 1
Daten-Bit 2
Daten-Bit 3
Daten-Bit 4
Daten-Bit 5
Daten-Bit 6
Daten-Bit 7
Daten-Bit 8
Daten-Bit 9
Daten-Bit 10
Daten-Bit 11
Daten-Bit 12
Daten-Bit 13
Daten-Bit 14
Daten-Bit 15
Daten-Bit 16
Daten-Bit 17
Daten-Bit 18
Daten-Bit 19
Daten-Bit 20
Daten-Bit 21
Daten-Bit 22
Daten-Bit 23
Daten-Bit 24
Daten-Bit 25
Daten-Bit 26
Daten-Bit 27
Daten-Bit 28
Daten-Bit 29
Daten-Bit 30
Daten-Bit 31
ERTEC 200 Handbuch
Version 1.1.0
Nr.
Signalname
Alternative
Reset-Funktion
IO
(Reset)
Pull-
PINNr.
Bemerkung
EMIF (External Memory Interface)
109
110
111
WR_N
RD_N
O (O)
O (O)
A4
B5
CS_PER0_N
O (O)
D5
112
113
114
115
116
117
118
119
120
121
122
123
124
CS_PER1_N
CS_PER2_N
CS_PER3_N
BE0_DQM0_N
BE1_DQM1_N
BE2_DQM2_N
BE3_DQM3_N
RDY_PER_N
CLK_SDRAM
CS_SDRAM_N
RAS_SDRAM_N
CAS_SDRAM_N
WE_SDRAM_N
O (O)
O (O)
O (O)
O (O)
O (O)
O (O)
O (O)
I (I)
B (O)
O (O)
O (O)
O (O)
O (O)
A5
A6
B6
N4
V1
J4
P5
D7
M1
L1
M5
L2
M4
1.5.7
Nr.
up
Write Strobe
Read Strobe
Chip Select Bank 1 (ROM);
Bootbereich
Chip Select Bank 2
Chip Select Bank 3
Chip Select Bank 4
Byte Enable 0 für D(7:0)
Byte Enable 1 für D(15:8)
Byte Enable 2 für D(23:16)
Byte Enable 3 für D(31:24)
Ready Signal
Clock für SDRAM
Chip-Select für SDRAM
RAS für SDRAM
CAS für SDRAM
Write Enable für SDRAM
LBU, MII-Interface oder ETM-Trace-Interface
Funktion 1
Funktion 2
Funktion 3
Funktion 4
LBU
PHY-Debug
u.
GPIO[44:32]
Config
(6,5,2)=011b
ETM-Trace
u.
GPIO[44:32]
Config
(6,5,2)=101b
Reserviert
Config
(6,5,2)=xx0b
[6,5,2]=111b
IO
(Reset
Siehe
Config
[6,5,2])
Pull
-
PINNr.
Bemerkung
LBU / MII-Interface/ ETM-Trace-Interface
125
LBU_A0
RXD_P10
ETMEXTOUT
126
LBU_A1
RXD_P11
ETMEXTIN1
127
LBU_A2
RXD_P12
TRACEPKT7
128
LBU_A3
RXD_P13
TRACEPKT6
129
LBU_A4
CRS_P1
TRACEPKT5
130
LBU_A5
RX_ER_P1
TRACEPKT4
131
LBU_A6
RX_DV_P1
TRACEPKT3
132
LBU_A7
COL_P1
TRACEPKT2
133
LBU_A8
RXD_P20
TRACEPKT1
134
LBU_A9
RXD_P21
TRACEPKT0
135
LBU_A10
RXD_P22
TRACESYNC
136
LBU_A11
RXD_P23
PIPESTA2
137
LBU_A12
CRS_P2
PIPESTA1
138
LBU_A13
RX_ER_P2
PIPESTA0
139
LBU_A14
RX_DV_P2
140
LBU_A15
COL_P2
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
I/O/O/I
(ETM : I)
I/O/I/I
(ETM : I)
I/O/O/I
(ETM : I)
I/O/O/I
(ETM : I)
I/O/O/I
(ETM : I)
I/O/O/I
(ETM : I)
I/O/O/I
(ETM : I)
I/O/O/I
(ETM : I)
I/O/O/I
(ETM : I)
I/O/O/I
(ETM : I)
I/O/O/I
(ETM : I)
I/O/O/I
(ETM : I)
I/O/O/I
(ETM : I)
I/O/O/I
(ETM : I)
I/O/I/I
I/O/I/I
15
up
AB3
LBU oder MII oder ETM
up
AA4
LBU oder MII oder ETM
up
AA5
LBU oder MII oder ETM
up
AB5
LBU oder MII oder ETM
up
AA6
LBU oder MII oder ETM
up
AB6
LBU oder MII oder ETM
up
AA7
LBU oder MII oder ETM
up
AB7
LBU oder MII oder ETM
up
AA8
LBU oder MII oder ETM
up
AB8
LBU oder MII oder ETM
up
AA9
LBU oder MII oder ETM
up
AA10
LBU oder MII oder ETM
up
AB10
LBU oder MII oder ETM
up
AA11
LBU oder MII oder ETM
up
AB11
LBU oder MII
up
W11
LBU oder MII
ERTEC 200 Handbuch
Version 1.1.0
Nr.
Funktion 1
Funktion 2
Funktion 3
Funktion 4
LBU
PHY-Debug
u.
GPIO[44:32]
Config
(6,5,2)=011b
ETM-Trace
u.
GPIO[44:32]
Config
(6,5,2)=101b
Reserviert
Config
(6,5,2)=xx0b
[6,5,2]=111b
IO
(Reset
Siehe
Config
[6,5,2])
Pull
-
PINNr.
Bemerkung
up
W9
LBU oder GPIO
up
W10
LBU oder GPIO
up
V10
LBU oder GPIO
up
W12
LBU oder GPIO
up
V12
LBU oder GPIO
up
V13
LBU oder GPIO
up
U13
LBU oder GPIO
LBU / MII-Interface
141
LBU_A16
GPIO32
GPIO32
142
LBU_A17
GPIO33
GPIO33
143
LBU_A18
GPIO34
GPIO34
144
LBU_A19
GPIO35
GPIO35
145
LBU_A20
GPIO36
GPIO36
146
LBU_SEG_0
GPIO37
GPIO37
147
LBU_SEG_1
GPIO38
GPIO38
I/B/B/B
(GPIO:I)
I/B/B/B
(GPIO:I)
I/B/B/B
(GPIO:I)
I/B/B/B
(GPIO:I)
I/B/B/B
(GPIO:I)
I/B/B/B
(GPIO:I)
I/B/B/B
(GPIO:I)
148
LBU_WR_N
TX_CLK_P1
I/O/I/I
up
AA12
149
LBU_RD_N
TX_CLK_P2
I/O/I/I
up
AB13
150
LBU_CS_R_
N
GPIO39
GPIO39
I/B/B/B
(GPIO : I)
up
AB12
151
LBU_CS_M_
N
GPIO40
GPIO40
I/B/B/B
(GPIO : I)
up
U14
152
153
LBU_BE0_N
LBU_BE1_N
RX_CLK_P1
RX_CLK_P2
up
up
AB14
AA13
LBU oder MII
LBU-Mode:
CONFIG[5] = 0 Write
Control (Low Activ)
CONFIG[5] = 1 RD/WR
Control (WR=0/RD=1)
LBU oder MII
LBU-Mode:
CONFIG[5] = 0 Read
Control (Low Activ)
CONFIG[5] = 1 ------LBU oder GPIO
LBU-Mode:
CS für PagingConfigurationsRegister
LBU oder GPIO
LBU-Mode:
CS für ERTEC 200
Resourcen
LBU oder MII
LBU oder MII
154
LBU_D0
TXD_P10
up
AA14
LBU oder MII
155
LBU_D1
TXD_P11
up
W15
LBU oder MII
156
LBU_D2
TXD_P12
up
AB16
LBU oder MII
157
LBU_D3
TXD_P13
up
AA16
LBU oder MII
158
LBU_D4
TX_EN_P1
up
AB17
LBU oder MII
159
LBU_D5
TX_ERR_P1
up
AA17
LBU oder MII
160
LBU_D6
TXD_P20
up
AB18
LBU oder MII
161
LBU_D7
TXD_P21
up
AA18
LBU oder MII
162
LBU_D8
TXD_P22
up
AB19
LBU oder MII
163
LBU_D9
TXD_P23
up
AA19
LBU oder MII
164
LBU_D10
TX_EN_P2
up
AA20
LBU oder MII
165
LBU_D11
TX_ERR_P2
up
AB21
LBU oder MII
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
I/O/I/I
I/O/I/I
B/O/I/O
(LBU : I)
B/O/I/O
(LBU : I)
B/O/I/O
(LBU : I)
B/O/I/O
(LBU : I)
B/O/I/O
(LBU : I)
B/O/I/O
(LBU : I)
B/O/I/O
(LBU : I)
B/O/I/O
(LBU : I)
B/O/I/O
(LBU : I)
B/O/I/O
(LBU : I)
B/O/I/O
(LBU : I)
B/O/I/O
(LBU : I)
16
ERTEC 200 Handbuch
Version 1.1.0
Nr.
Funktion 1
Funktion 2
Funktion 3
Funktion 4
LBU
PHY-Debug
u.
GPIO[44:32]
Config
(6,5,2)=011b
ETM-Trace
u.
GPIO[44:32]
Config
(6,5,2)=101b
Reserviert
Config
(6,5,2)=xx0b
[6,5,2]=111b
IO
(Reset
Siehe
Config
[6,5,2])
Pull
-
PINNr.
Bemerkung
up
W14
LBU oder MII
up
V15
LBU oder MII
up
V16
LBU oder MII
up
W16
LBU oder GPIO
LBU / MII-Interface
166
LBU_D12
SMI_MDC
167
LBU_D13
SMI_MDIO
168
LBU_D14
RES_PHY_N
169
LBU_D15
GPIO41
B/O/I/O
(LBU : I)
B/O/I/O
(LBU : I)
B/O/I/O
(LBU : I)
B/B/B/B
(GPIO:I)
(LBU : I)
GPIO41
170
LBU_RDY_N
GPIO42
GPIO42
O/B/B/B
(GPIO:I)
up
W19
171
LBU_IRQ0_N
GPIO43
GPIO43
O/B/B/B
(GPIO:I)
up
AA21
172
LBU_IRQ1_N
GPIO44
GPIO44
O/B/B/B
(GPIO:I)
up
W18
1.5.8
Nr.
LBU oder GPIO
LBU-Mode:
LBU_RDY-Signal:
Polarität abhängig von
Input CONFIG[6];
Output aktiv während
LBU_CS_R/M_N aktiv
ist
LBU oder GPIO
LBU-Mode: LowAktiver Interrupt (kein
Open Drain)
LBU oder GPIO
LBU-Mode: LowAktiver Interrupt (kein
Open Drain)
Ethernet PHY1 und PHY2
Signalname
IO
Pull-
PINNr.
Bemerkung
PHY1 und PHY2
173
174
175
176
177
178
179
180
181
182
183
184
DGND4
DVDD4
DVDD3
DGND3
P2VDDARXTX
P2VSSARX
P2RxN
P2RxP
P2VSSATX1
P2TxN
P2TxP
P2VSSATX2
I
I
I
I
I
I
B
B
I
B
B
I
T17
R21
R22
R17
N18
N17
P22
P21
M18
M21
M22
L19
185
P2RDxP
I
U22
186
P2RDxN
I
U21
187
P2TDxP
O
Y21
188
P2TDxN
O
W21
189
190
191
192
193
194
195
P2SDxP
P2SDxN
VSSAPLLCB
VDDACB
VDDAPLL
EXTRES
ATP
I
I
I
I
I
B
B
V19
U18
L18
H22
K19
L21
L22
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
17
Digital GND Supply
Digital 1,5V Supply
Digital 1,5V Supply
Digital GND Supply
Analog Port Tx/Rx 1,5 V Supply
Analog Port GND Supply
Port2 Differential Receive Input
Port2 Differential Receive Input
Analog Port GND Supply
Port2 Differential Transmit Output
Port2 Differential Transmit Output
Analog Port GND Supply
Port2 FX Differential Receive
Input
Port2 FX Differential Receive
Input
Port2 FX Differential Transmit
Output
Port2 FX Differential Transmit
Output
Port2 FX Differential SD Input
Port2 FX Differential SD Input
Analog Central GND Supply
Analog Central 3,3V Supply
Analog Central 1,5V Supply
Referenz Resistor 12,4 kOhm
Analog Test Funktion
ERTEC 200 Handbuch
Version 1.1.0
Nr.
Signalname
IO
Pull-
PINNr.
Bemerkung
PHY1 und PHY2
196
197
P1SDxN
P1SDxP
I
I
F19
G19
198
P1TDxN
O
C22
199
P1TDxP
O
C21
200
P1RDxN
I
E21
201
P1RDxP
I
E22
202
203
204
205
206
207
208
209
210
211
212
213
214
215
P1VSSATX2
P1TxP
P1TxN
P1VSSATX1
P1RxP
P1RxN
P1VSSARX
P1VDDARXTX
GND33ESD
VDD33ESD
DGND2
DVDD2
DVDD1
DGND1
I
B
B
I
B
B
I
I
I
I
I
I
I
I
K18
J22
J21
K17
G21
G22
J17
J19
H18
F22
G17
H19
G18
H21
1.5.9
Stromversorgung
Nr.
SpannungsSignalname
IO
PIN-Nr.
Port1 FX Differential SD Input
Port1 FX Differential SD Input
Port1 FX Differential Transmit
Output
Port1 FX Differential Transmit
Output
Port1 FX Differential Receive
Input
Port1 FX Differential Receive
Input
Analog Port GND Supply
Port1 Differential Transmit Output
Port1 Differential Transmit Output
Analog Port GND Supply
Port1 Differential Receive Input
Port1 Differential Receive Input
Analog Port GND Supply
Analog Port Tx/Rx 1,5 V Supply
Analog Test GND Supply
Analog Test 3,3V Supply
Digital GND Supply
Digital 1,5V Supply
Digital 1,5V Supply
Digital GND Supply
Bemerkung
Stromversorgung
216
217
PLL_AVDD
PLL_AGND
P
P
218-238
VDD Core
P
239- 253
GND Core
P
254-267
VDD IO
P
268-281
GND IO
P
282-285
286-288
VDDQ (PECL)
GND (PECL)
P
P
289-304
Not Used Pins
E12
F13
D6, D9, D12, D18, E5, E13, E18, F6,
F17, L4, R2, T21, U6, U8, U17, V4, V5,
V18, W13, W17, AA15
A21, E6, E11, E17, F5, F7, F16, G6, L5,
T6, U16, V6, V11, V14, AA22
A2, A9, A10, A14, A18, B22, H1, N1,
W22, Y1, Y22, AB9, AB15, AB20
A8, A12, A20, B1, B21, E10, F8, F15,
J1, T1, U5, U7, U15, V17
D21, D22, R19, V21
F18, T18, T19
E19, F21, H17, J18, K21, K22,
M19, N19, N21, N22, P17, P18,
P19, R18, T22, V22
PLL Analog 1,5 Volt
PLL Analog GND
SV CORE1,5 Volt
(21 Pins)
GND CORE
(15 Pins)
SV IO 3,3 Volt
(14 Pins)
GND IO
(14 Pins)
SV Q PECL 3,3 Volt
GND IO (PCI)
Not Used Pins
(4 Pin)
(3 Pins)
(16 Pins)
Zur besseren Wärmeableitung
diese Pins mit GND beschalten.
Die Pins können aber auch
unbeschaltet bleiben.
Tabelle 1: ERTEC 200 Pinbelegung und Signalbeschreibung
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
18
ERTEC 200 Handbuch
Version 1.1.0
Signalbeschreibung:
IO =
Signalrichtung aus der Sicht der Anwendung
I:
B:
Input
Bidirektional
O:
P:
Output
Power Supply
Pull- = interner Pull-up/Pull-down Widerstand am Signalpin angeschlossen
up:
interner Pullup
dn:
interner Pulldown
PU/PD = Applikationsabhängig sind ext. Widerstände notwendig
PU:
externer Pullup
PD:
externer Pulldown
_N als letzter Buchstabe des Signalnamens bedeutet: Signal ist Low-Aktiv Beispiel: INTA_N
Note:
(1) Die Pins BOOT[3:0] werden während der aktiven RESET-Phase in das System-Konfigurations-Register
“BOOT_REG” eingelesen. Nach Reset stehen diese Pins als normale Funktions-Pins zur Verfügung.
(2) Die Pins CONFIG [6:1] werden während der aktiven RESET-Phase in das System-Konfigurations-Register
“CONFIG_REG” eingelesen. Nach Reset stehen diese Pins als normale Funktions-Pins zur Verfügung.
(3) Die Testpins TMC1 und TMC2 im Betrieb auf Masse legen. TEST_N und TACT_N können offen bleiben.
(4) Die GPIOs[31:0] und LBU-Pins können bis zu 4 verschiedene Funktionen beinhalten. Entsprechend der
ausgewählten Funktion haben die IO-Funktions-Pins unterschiedliche Beschaltung.
Beispiel IO-Funktion: B/O/O/I/ (I) Æ Funktion 0 = Bidirektional, Funktion 1 = Output, Funktion 2 = Output,
Funktion 3 = Input, (I) = IO-Funktion während RESET = Input
Für LBU, PHY-Debug oder ETM-Trace-Interface ist die IO-Funktion, die mit Config[6,5,2] eingestellt ist, während RESET
aktiv. Default ist Funktion 3 (ETM-Trace, GPIO[44:32]) mit internen Pullup- und Pulldown-Widerständen eingestellt.
Besonderheit:
ETM-Ausgänge sind während Reset als Eingänge geschaltet. Diese werden erst umgeschaltet wenn ein Trace-Interface
angeschlossen und parametriert ist.
Verschieden LBU- und GPIO-Pins haben bidirektionale Funktionen. Während Reset gelten die in Klammer gesetzten
Werte, wenn diese Funktion mit Config[6,5,2] ausgewählt ist.
Beispiel:
CONFIG[6, 5, 2] = xx0 Æ Funktion 1 Æ LBU-Mode
Alle IO-Pins für Funktion1 sind während RESET aktiv
z.B.
LBU_A0 ist Input
Æ
Input während Reset
LBU_D0 ist Bidirektional Æ
Input während Reset
Durch Parametrierung der GPIO - Registern GPIO_PORT_MODE_L und GPIO_PORT_MODE_H werden die
verschiedenen alternativen GPIO – Funktionen ausgewählt.
Die Register sind im Kapitel 4.2.2 beschrieben.
Die alternativen LBU/MII - Funktionen werden mit den Konfigurations-Pins CONFIG[6,5,2] im Anwenderdesign
ausgewählt.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
19
ERTEC 200 Handbuch
Version 1.1.0
2
ARM946E-S Prozessor
Im ERTEC 200 ist der Prozessor ARM946E-S implementiert.
Grundlage für die Beschreibung sind die Dokumente /1/ und /2/.
2.1
Aufbau des ARM946E-S
Eingesetzt wird ein ARM946E-S Prozessorsystem. In der nachfolgenden Abbildung ist die Struktur des Prozessors
dargestellt. Das System beinhaltet neben dem Prozessorkern je einen Daten- und Instruction-Cache, eine Memory
Protection Unit (MPU), System Control Coprozessor und ein Tightly Coupled Memory. Das Prozessorsystem hat eine
Anschaltung an das integrierte AHB-Bus-Interface.
Abbildung 3: Aufbau ARM946E-S Prozessorsystem
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
20
ERTEC 200 Handbuch
Version 1.1.0
2.2
Beschreibung des ARM946E-S
Das Prozessorsystem ARM946E-S ist ein Mitglied der ARM9-Thumb-Familie. Er besitzt einen Prozessor-Kern mit
Harvard-Architektur. Im Unterschied zur normalen ARM9 Familie besitzt der ARM946E-S eine verbesserte V5TEArchitektur, die einen schnelleren Wechsel zwischen ARM-und Thumb- Code Segmenten zulässt und eine verbesserte
Multiplizierer Struktur besitzt. Zusätzlich besitzt der Prozessor eine integrierte JTAG-Schnittstelle.
2.3
Arbeitsfrequenz des ARM946E-S
Der Prozessor kann entweder mit 50MHz, 100MHz oder 150 MHz betrieben werden. Die Arbeitsfrequenz wird über die
Konfigurations-Pins CONFIG[4] und CONFIG[3] während der Reset-Phase eingestellt. Die Kommunikation mit den
Komponenten des ERTEC 200 erfolgt über den AHB-Bus mit einer Frequenz von 50 MHz.
2.4
Cache-Struktur des ARM946E-S
Folgende Caches sind im ARM946E-S integriert:
•
8 kByte Instruction-Cache mit Lockfunktion
•
4 kByte Daten-Cache mit Lockfunktion
Beide Caches sind „Vier-Wege-Set-Associative“-Cache mit 1kByte Segmenten. Jedes Segment besteht aus 32 Lines mit
32Bytes (8 x 4Bytes). Beim D-Cache sind „Write-Buffer“ mit Write-Back-Funktion vorhanden.
Die Lockfunktion ermöglichtes es dem Anwender, die Inhalte der Cache-Segmente zu sperren („LOCK“). Diese Funktion
ermöglicht es den Befehlssatz für schnelle Routinen dauerhaft im Instruction-Cache zu halten. Dieser Mechanismus
kann beim ARM946E-S nur Segmentgranular durchgeführt werden.
Beide Caches sind nach Reset gesperrt. Die Caches können nur freigegeben werden wenn gleichzeitig die „MemoryProtection-Unit“ freigegeben ist.
Durch Setzen von Bit 12 des CP15 – Control – Register kann der I-Cache freigegeben werden.
Durch Setzen von Bit 2 des CP15 – Control – Register kann der D-Cache freigegeben werden.
Bei nicht freigegebenen Cache ist ein Zugriff auf diesen Bereich gesperrt.
Weitere Informationen zum Caching sind im Dokument /1/ Kapitel 3 nachzulesen.
Weitere Information zur Beschreibung der ARM946-Register sind im Kapitel 2.10 dieses Dokuments nachzulesen.
2.5
Tightly Coupled Memory (TCM)
Im ARM946E-S Prozessor des ERTEC 200 ist ein 4kByte großes Daten-Tightly Coupled Memory (D-TCM)
implementiert. Der Speicher ist nach Reset gesperrt. Das D-TCM kann beliebig in den Adressraum des ARM946E-S
gelegt werden und muß zusammen mit einer Region der Memory-Protection-Unit genutzt werden. Im D-TCM können die
Daten von schnellen Routinen wie z.B. der Isochronregelung platziert werden.
Durch Setzen von Bit 16 des CP15 – Control – Register kann das D-TCM freigegeben werden.
Zusätzlich ist der Adressbereich des D-TCM im Tightly-Coupled Memory Register einzustellen.
Weitere Informationen zum D-TCM sind im Dokument /1/ Kapitel 5 nachzulesen.
Weitere Information zur Beschreibung der ARM946-Register sind im Kapitel 2.10 dieses Dokuments nachzulesen.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
21
ERTEC 200 Handbuch
Version 1.1.0
2.6
Memory Protection Unit (MPU)
Die Memory-Protection-Unit erlaubt den Benutzer bestimmte Speicherbereiche (I-Cache, D-Cache oder DTCM) in
verschiedene Regionen aufzuteilen und diese mit verschiedenen Attributen zu belegen.
Es können maximal 8 Regionen mit variabler Größe eingestellt werden. Bei Überlappung von Regionen sind die Attribute
der höheren Regionnummer wirksam.
Einstellungen je Region:
•
Basis-Adresse der Region
•
Größe der Region
•
Cache- und „Write-Buffer“- Konfiguration
•
Lese-/Schreib-Zugriffs-Freigabe für Privilegierte/User
Die Einstellungen werden in folgenden Registern des ARM946E-S durchgeführt:
ƒ
Register 2 „Cache-Configuration-Register“
ƒ
Register 3 „Write-Buffer-Control-Register“
ƒ
Register 5 „Access-Permission-Register“
ƒ
Register 6 „Protection-Region/Base-Size-Register“
Die Basis-Adresse definiert die Anfangsadresse der Region. Diese Adresse muß immer ein Vielfaches der Größe der
Region sein.
Beispiel: Die Region-Größe ist 4 kByte. Die Anfangsadresse ist dann immer ein Vielfaches von 4 kByte.
Bevor die MPU freigegeben wird, muss mindestens eine Region parametriert worden sein, sonst kann es zu einem
Zustand im ARM946E-S führen, der nur durch Reset wieder verlassen werden kann.
Durch Setzen von Bit 0 des CP15 – Control – Register kann die MPU freigegeben werden.
Wenn die MPU gesperrt ist, können keine I-Cache- oder D-Cache-Zugriffe durchgeführt werden, auch wenn diese
freigegeben sind.
Weitere Informationen zur MPU sind im Dokument /1/ Kapitel 4 nachzulesen.
Weitere Information zur Beschreibung der ARM946-Register sind im Kapitel 2.10 dieses Dokuments nachzulesen.
2.7
Bus-Interface des ARM946E-S
Für Opcode-Fetches und Daten-Transfers benutzt der ARM946E-S ein AHB-Bus-Master-Interface zum Multi-Layer AHBBus. Das Interface arbeitet fest mit einer Frequenz von 50 MHz. Die Datenbus- und Adressbusbreite beträgt jeweils 32
Bit.
Weitere Informationen zum Bus-Interface und „Write-Buffer“ und zu den verschiedenen Transfer-Typen sind im
Dokument /1/ Kapitel 6 nachzulesen.
2.8
ARM946E-S Embedded Trace Macrocell (ETM9)
Am ARM946E-S ist ein ETM9-Modul angeschlossen, das eine Debugunterstützung für Daten- und Instruction-Trace im
ERTEC 200 zulässt. Das Modul enthält alle vom Prozessor für den Daten- und Instructiontrace notwendigen Signale.
Bedient wird das ETM9-Modul über das JTAG-Interface. Die Traceinformationen werden über einen FIFO-Speicher an
den Traceport nach außen gegeben. Eine genauere Beschreibung erfolgt im Kapitel 11
2.9
ARM-Interrupt-Controller (ICU)
Der Interrupt-Controller unterstützt die beide Interruptebenen FIQ und IRQ des ARM946 Prozessors. Für FIQ ist ein
Interrupt-Controller mit 8 Interrupteingängen realisiert. Sechs Interrupteingänge (FIQ0-5) werden vom ERTEC 200 belegt
und 2 Interrupteingänge (FIQ6-7) können wahlweise als IRQ-Quellen programmiert werden. Die hochprioren FIQInterrupts dienen der Watchdog- und Adressraumüberwachung und dem Debugging. Für IRQ ist ein Interrupt-Controller
für 16 Interrupteingänge realisiert. Von den 16 IRQ-Eingängen können zwei IRQ-Quellen zur Verarbeitung als FastInterrupt_Requests (FIQ6-7) ausgewählt werden. Die Zuweisung erfolgt durch Angabe der IRQ-Nummer des
entsprechenden Interrupt-Eingangs im Register FIQ1REG / FIQ2REG.Die als FIQ ausgewählten Interrupt-Eingänge
müssen für die IRQ-Logik gesperrt werden. Alle übrigen Interrupt-Eingänge können weiterhin als IRQ’s verarbeitet
werden.
Der Interrupt-Controller wird mit einer Taktfrequenz von 50 MHZ betrieben. Interrupt-Request-Signale, die mit einer
höheren Taktfrequenz generiert werden, müssen für eine fehlerfreie Erkennung entsprechend verlängert werden.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
22
ERTEC 200 Handbuch
Version 1.1.0
2.9.1
Priorisierung der Interrupts
Die Prioritäten der IRQ- und FIQ-Interrupts sind einstellbar. Bei den IRQ-Interrupts sind die Prioritäten 0 – 15 und bei den
FIQ-Interrupts sind die Prioritäten 0 – 7 parametrierbar. Bei beiden Interruptebenen ist 0 die höchste Priorität. Nach
Reset sind alle IRQ-Interrupt-Eingänge auf Priorität 15 und alle FIQ-Interrupt-Eingänge auf Priorität 7 gesetzt. Zu jedem
Interrupt-Eingang gehört ein Prioritätsregister. Für die IRQ-Interrupts sind das PRIOREG0 – PRIOREG15 und für die FIQ
FIQPR0 bis FIQPR7. Es darf keine Priorität mehrfach vergeben werden. Eine Überprüfung bezüglich der Vergabe
identischer Prioritäten findet in der ICU-Logik nicht statt. Durch Vorgabe einer Priorität im Register LOCKREG können im
IRQ-Prioritäts-Resolver jederzeit alle Interrupt-Request mit kleiner oder gleicher Priorität gesperrt werden. Tritt
gleichzeitig mit dem Schreibzugriff auf das LOCKREG-Register ein Interrupt-Request eines zu sperrenden Interrupts auf,
so verursacht dieses Ereignis die Ausgabe eines IRQ-Signals. Das Signal wird jedoch nach zwei Takten wieder
zurückgenommen. Sollte dennoch ein Acknowledge generiert werden, so ist der übergebene Interrupt-Vector der
Default-Vector.
2.9.2
Triggermodi
Es stehen für jeden Interrupt-Eingang die Betriebsarten „Flankengetriggert“ oder „Pegelgetriggert“ zur Verfügung.
Die Triggerart wird über das zugeordnete Bit im Register TRIGREG festgelegt. Bei Einstellung der Betriebsart
„Flankengetriggert“ kann zwischen positiver und negativer Flankenauswertung unterschieden werden. Dies wird im
Register EDGEREG vorgenommen. In der Betriebsart „Pegelgetriggert“ ist der aktive Pegel der Interrupt Request
Signale high aktiv. Defaultmäßig sind die IRQ-Interrupts wie in Kapitel 2.9.7 und die FIQ-Interrupts wie in Kapitel 2.9.8
beschrieben, parametriert.
Bei der Betriebsart „Flankengetriggert“ muß das Interrupt-Eingangssignal mindestens eine Taktperiode lang anstehen. In
der Betriebsart „Pegelgetriggert“ muß das Eingangssignal bis zur Bestätigung der ARM946E-S CPU anstehen. Kürzere
Signale führen zum Verlust des Ereignisses.
2.9.3
Maskierung der Interrupt-Eingänge
Jeder IRQ-Interrupt kann einzeln freigegeben oder gesperrt werden. Dafür steht das Register MASKREG zur Verfügung.
Die Interrupt-Maske wirkt erst nach dem Interrupt-Request-Register IRREG. Das heißt, dass ein aufgetretener Interrupt
trotz Sperrung im MASKREG-Register ins IRREG-Register eingetragen wird. Nach RESET sind alle Maskenbits gesetzt
und somit alle Interrupts gesperrt. Übergeordnet kann per Befehl eine globale Sperre aller IRQ-Interrupts durchgeführt
werden. Eine globale Freigabe der IRQ-Interrupts per Befehl gibt nur die IRQ-Interrupts frei, die durch das
entsprechende Maskenbit im Register MASKREG freigegeben sind.
Für die FIQ-Interrups ist nur die selektive Maskierung durch die Maskenbits im Register FIQ_MASKREG möglich. Nach
RESET sind alle FIQ-Interrupts gesperrt. Ein erkannter FIQ-Interrupt-Request wird ins FIQ-Interrupt-Request-Register
eingetragen. Ist der Interrupt im Maskenregister freigegeben, so erfolgt eine Verarbeitung in der Prioritätslogik. Bei
Annahme des Interrupt-Requests durch die ARM946-CPU und der Eintragung in das In-Service-Request-Register (ISR)
wird das entsprechende Bit im IRREG-Register zurückgesetzt. Es kann auch jedes gesetzte Bit im IRREG-Register per
Software gelöscht werden. Hierzu wird dem Interrupt-Controller die Nummer des zurückzusetzenden Bits im IRCLVECRegister übergeben.
2.9.4
Software-Interrupts für IRQ
Jeder IRQ-Interrupt-Request kann durch Setzen des dem Eingangskanal entsprechenden Bit im Software.InterruptRegister SWIRREG ausgelöst werden. Es können auch mehrere Requests in das 16-Bit SWIRREG – Register
eingetragen werden. Die Software-Interrupt-Requests werden direkt in das IRREG-Register übernommen und somit wie
ein Hardware-IRQ behandelt. Software-Interrupts können nur vom ARM946E-S Prozessor ausgelöst werden, da nur
dieser Zugriffsrechte auf den Interrupt-Controller besitzt.
2.9.5
Nested Interrupt Struktur
Ein aufgetretener IRQ-Interrupt-Request verursacht bei Freigabe durch die Interrupt-Prioritätslogik die Ausgabe eines
IRQ-Signals. Entsprechend verursacht ein FIQ-Interrupt-Request die Ausgabe des FIQ-Signals an die CPU.
Bei Annahme des Requests durch die CPU wird das dem physikalischen Eingang entsprechende Bit im Register
ISRREG gesetzt. Das IRQ-/FIQ-Signal wird zurückgenommen. Das ISR-Bit des angenommenen Interrupts bleibt
gesetzt, bis die CPU ein „End-Of-Interrupt“ Befehl an den Interrupt-Controller zurückgibt. Solange das ISR-Bit gesetzt ist,
werden Interrupts mit niedrigerer Priorität in der Prioritätslogik des Interrupt-Controllers gesperrt. Interrupts mit einer
höheren Priorität werden von der Prioritätslogik durchgelassen und erzeugen ein IRQ-/FIQ-Signal an die CPU. Sobald
die CPU diesen Interrupt annimmt, wird auch das entsprechende ISR-Bit im ISRREG-Register zusätzlich gesetzt. Die
CPU unterbricht dann die Interrupt-Routine mit der niedrigeren Priorität und arbeitet erst die höhere Interrupt-Routine ab.
Aufgetreten Interrupts mit niedriger Priorität gehen nicht verloren. Diese werden in das Register IRREG eingetragen und
zu einem späteren Zeitpunkt, wenn alle höherprioren Interrupt-Routinen abgearbeitet sind bearbeitet.
2.9.6
EOI End-Of-Interrupt
Ein gesetztes ISR-Bit wird durch den Befehl End-Of-Interrupt zurückgesetzt. Dies muß die CPU nach Bearbeitung der
entsprechenden Interrupt-Service-Routine an den Interrupt-Controller mit dem Befehl EOI mitteilen. Der EOI-Befehl wird
durch einen Schreibzugriff der CPU auf die Register IRQEND/FIQEND mit einem beliebigen Wert dem InterruptController mitgeteilt. Der Interrupt-Controller entscheidet selbstständig, welches ISR-Bit mit dem EOI-Befehl
zurückgesetzt wird. Sind mehrere ISR-Bits gesetzt, so löscht der Interrupt-Controller das ISR-Bit des zum Zeitpunkt des
EOI-Befehl höchstprioren Interrupt-Requests. Der Interrupt-Zyklus gilt für den Interrupt-Controller für beendet, wenn alle
gesetzten ISR-Bits durch die entsprechende Anzahl an EOI-Befehlen zurüchgesetzt wurden. Danach können
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
23
ERTEC 200 Handbuch
Version 1.1.0
niederpriorere Interrupts, die in der Zwischenzeit aufgetreten sind und in das Register IRREG eingetragen wurden, in der
Prioritätslogik bearbeitet werden.
Während einer oder mehrerer angenommener Interrupts darf die Prioritätsverteilung der IRQ-/FIQ-Interrupt-Eingänge
nicht verändert werden, da sonst die ICU die EOI-Befehle nicht mehr richtig zuordnen kann.
Ein IRQ-/FIQ-Request wird von der CPU durch einen Lesezugriff auf Register IRVEC/FIVEQ angenommen. Dieses
Register enthält die binärcodierte Vector-Nummer des momentan höchstprioren anstehenden Interrupt-Request. Jedes
der beiden Interrupt-Vector-Register ist unter zwei verschiedenen Adressen ansprechbar. Ein Lesen des VectorRegisters mit der ersten Adresse wird vom Interrupt-Controller als „Interrrupt-Acknowledge“ gewertet. Dadurch werden
die Abläufe für diesen Interrupt in der ICU-Logik durchgeführt. Ein Lesen des Vector-Registers mit der zweiten Adresse
ist nicht mit der „Acknowledge-Funktion“ verknüpft. Dies ist vor allem für die Debugging-Funktionen nützlich um den
Inhalt des Interrupt-Vector-Registers auszulesen ohne die Acknowledge-Funktion des Interrupt-Controllers zu starten.
2.9.7
IRQ-Interrupt-Quellen
Dem IRQ-Interrupt-Controller stehen aus folgenden Funktionsgruppen des ERTEC 200 Interrupts zur Verfügung:
IRQ-Interrupts
Signalname Defaulteinstellung
Interrupt-Nr.
Funktionsblock
0
Timer
TIM_INT0
Steigende Flanke
Timer 0
1
Timer
TIM_INT1
Steigende Flanke
3:2
GPIO
GPIO(1:0)
Parametrierbar
5:4
GPIO
GPIO(31:30)
Parametrierbar
Timer 1
externer Eingang ERTEC 200
GPIO[1:0]
externer Eingang ERTEC 200
GPIO[31:30]
6
Timer
TIM_INT2
Steigende Flanke
7
-----
------
-----
8
UART
UART_INTR
High Pegel
9
PHY0/1
P0/1_INTERP
Steigende Flanke
Interrupt von PHY 0/1
10
SPI
SSP_INTR
Steigende Flanke
Sammel-Interrupt SPI
11
SPI
SSP_ROR_INTR
Steigende Flanke
Receive-Overrun-Interrupt SPI
12
IRT-Switch
IRQ0_SP
Steigende Flanke
highpriorer IRT-Interrupt
13
IRT-Switch
IRQ1_SP
Steigende Flanke
lowpriorer IRT-Interrupt
14
-----
-----
-----
15
DMA
DMA_INT
Steigende Flanke
Anmerkung
Timer 2
Reserviert
Sammel-Interrupt UART
Reserviert
DMA-Controller, DMA-Transfer
beendet
Tabelle 2: Übersicht IRQ-Interrupts
2.9.8
FIQ-Interrupt-Quellen
Dem FIQ-Interrupt-Controller stehen aus folgenden Funktionsgruppen des ERTEC 200 Interrupts zur Verfügung:
FIQ-Interrupts
Signalname Defaulteinstellung
Interrupt-Nr.
Funktionsblock
0
Watchdog
Steigende Flanke
1
APB-Bus
Steigende Flanke
2
Multilayer AHB
Steigende Flanke
3
PLL-Status-Register
Steigende Flanke
Anmerkung
Zugriff auf nicht vorhandene
Adresse am APB (1)
Zugriff auf nicht vorhandene
Adresse am AHB (1)
Sammel-Interrupt von:
EMIF: Peripherie QVZ
PLL: Loss State
PLL: Lock State
siehe System-Control-Register
"PLL_STAT_REG"
4
ARM-CPU
COMM_Rx
Steigende Flanke
Receive Comm-Channel Interrupt
5
ARM-CPU
COMM_Tx
Steigende Flanke
Transmit Comm-Channel Interrupt
6
wahlweise
Steigende Flanke
frei programmierbare IRQ-Quelle
7
wahlweise
Steigende Flanke
frei programmierbare IRQ-Quelle
wahlweise von
IRQ
wahlweise von
IRQ
Tabelle 3: Übersicht FIQ-Interrupts
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
24
ERTEC 200 Handbuch
Version 1.1.0
(1) Ein Zugriff auf nicht vorhandene Adressen wird von den einzelnen Funktionsgruppen des ERTEC 200 erkannt und
löst einen Puls mit der Dauer Tp = 2/50MHz aus. Bei Auswertung dieses Interrupts ist der angeschlossene FIQEingang als flangengetriggerter Eingang zu parametrieren.
2.9.9
IRQ-Interrupts als FIQ-Interrupt-Quellen
Auf FIQ6 und FIQ7 können Interrupts aus dem IRQ-Interrupt gelegt werden.
Die Interrupts des FIQ-Interrupt-Controllers dienen zum Debugging, Überwachen der Adressraumzugriffe und für
Watchdog.
Die FIQ-Interrupts Nr. 4 und 5 sind die Interrupts der embedded ICE RT Kommunikation. Anstatt des ICE kann auch der
UART als Debugger verwendet werden. Ein effektives Real-Time-Debugging wird möglich, wenn man die IRQ-InterruptQuellen des UART auf die FIQ’s mit den Nummern 6 oder 7 mappt. Dadurch ist ein Debuggen von Interruptroutinen
möglich.
2.9.10 Interrupt-Control-Register
Mit den Interrupt-Control Registern wird die komplette Steuerung, Priorisierung und Maskierung der IRQ/FIQ-InterruptController eingestellt.
ICU (Basisadresse 0x5000_0000)
Register-Name
Offsetadresse
Adressbereich
Zugriff
Default
IRVEC
0x0000
4 Byte
R
0xFFFFFFFF
Interrupt Vector Register
FIVEC
0x0004
4 Byte
R
0xFFFFFFFF
Fast Interrupt Vector Register
LOCKREG
0x0008
4 Byte
R/W
0x00000000
Priority Lock Register
FIQ1SREG
0x000C
4 Byte
R/W
0x00000000
Fast-Int Request1 Select Register
(FIQ6 am FIQ-Interruptcontroller)
FIQ2SREG
0x0010
4 Byte
R/W
0x00000000
Fast-Int Request2 Select Register
(FIQ7 am FIQ-Interruptcontroller)
IRQACK
0x0014
4 Byte
R
0xFFFFFFFF
Interrupt Vector Register mit IRQ
Acknowledge
FIQACK
0x0018
4 Byte
R
0xFFFFFFFF
Fast Interrupt Vector Register mit
FIQ Acknowledge
Beschreibung
IRCLVEC
0x001C
4 Byte
W
0x----
Interrupt Request Clear Vector
MASKALL
0x0020
4 Byte
R/W
0x00000001
Maske für alle Interrupts
IRQEND
0x0024
4 Byte
W
0x----
Ende von IRQ-Interrupt
FIQEND
0x0028
4 Byte
W
0x----
Ende von FIQ-Interrupt
FIQPR0
0x002C
4 Byte
R/W
0x00000007
FIQ Priority Register am Eingang
FIQ0 des FIQ-Interruptcontrollers
FIQPR1
0x0030
4 Byte
R/W
0x00000007
FIQ Priority Register am Eingang
FIQ1 des FIQ-Interruptcontrollers
FIQPR2
0x0034
4 Byte
R/W
0x00000007
FIQ Priority Register am Eingang
FIQ2 des FIQ-Interruptcontrollers
FIQPR3
0x0038
4 Byte
R/W
0x00000007
FIQ Priority Register am Eingang
FIQ3 des FIQ-Interruptcontrollers
FIQPR4
0x003C
4 Byte
R/W
0x00000007
FIQ Priority Register am Eingang
FIQ4 des FIQ-Interruptcontrollers
FIQPR5
0x0040
4 Byte
R/W
0x00000007
FIQ Priority Register am Eingang
FIQ5 des FIQ-Interruptcontrollers
FIQPR6
0x0044
4 Byte
R/W
0x00000007
FIQ Priority Register am Eingang
FIQ6 des FIQ-Interruptcontrollers
FIQPR7
0x0048
4 Byte
R/W
0x00000007
FIQ Priority Register am Eingang
FIQ7 des FIQ-Interruptcontrollers
FIQISR
0x004C
4 Byte
R
0x00000000
FIQ In Service Register
FIQIRR
0x0050
4 Byte
R
0x00000020
FIQ Request Register
FIQ_MASKREG
0x0054
4 Byte
R/W
0x000000FF
FIQ Interrupt Mask Register
IRREG
0x0058
4 Byte
R
0x000001xx
Interrupt Request Register
MASKREG
0x005C
4 Byte
R/W
0x0000FFFF
Interrupt Mask Register
ISREG
0x0060
4 Byte
R
0x00000000
In Service Register
TRIGREG
0x0064
4 Byte
R/W
0x00000000
Trigger Select Register
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
25
ERTEC 200 Handbuch
Version 1.1.0
EDGEREG
0x0068
4 Byte
R/W
0x00000000
Edge Select Register
SWIRREG
0x006C
4 Byte
R/W
0x00000000
Software Interrupt Register
PRIOREG 0
0x0070
4 Byte
R/W
0x0000000F
Priority Register 0
PRIOREG 1
0x0074
4 Byte
R/W
0x0000000F
....
...
...
....
...
...
....
PRIOREG15
0x00AC
4 Byte
R/W
0x0000000F
Priority Register 15
Tabelle 4: Übersicht Interrupt-Control-Register
2.9.11 ICU-Register Beschreibung
IRVEC
R
Beschreibung
Name
IRVEC
31:4
Vektorkennung
FIVEC
Name
FIVEC
31:3
Vektorkennung
LOCKREG
Beschreibung
Default: 0xFFFF_FFFF
Beschreibung
Bei anstehendem, gültigen Interrupt: Binärcode der FIQ-Nummer.
Default-Vektor: Bit[2:0] = 1
Bei anstehendem, gültigen Bit[31:3] = 0
Default-Vektor: Bit[31:3] = 1
R/W
Addr.: 0x5000_0008
Default: 0x0000_0000
Priority Lock Register
Vorgabe einer Priorität zur Sperre nieder- und gleichpriorer Interrupt Requests
Name
LOCKPRIO
LOCKENABLE
FIQ1SREG
Beschreibung
Beschreibung
Binärcode der Sperrpriorität
0=Sperre inaktiv / 1=Sperre aktiv
R/W
Addr.: 0x5000_000C
Default: 0x0000_0000
Fast Interrupt Request 1 Select Register
Deklaration eines IRQ-Eingangs als FIQ6 (Eingang FIQ6 am FIQ-Interruptcontroller)
Name
FIQ1SREG
FIQ1SENABLE
FIQ2SREG
Bit-Nr
3–0
7
Addr.: 0x5000_0004
Fast Interrupt Vector Register
Nummer des höchstprioren anstehenden Fast Interrupt Request
Bit-Nr
2:0
Beschreibung
Beschreibung
Bei anstehendem, gültigen Interrupt: Binärcode der Eingangsnummer.
Default-Vektor: Bit[3:0] = 1
Bei anstehendem, gültigen Interrupt: Bit[31:4] = 0.
Default-Vektor: Bit[31:4] = 1
R
Beschreibung
Bit-Nr
3–0
7
Default: 0xFFFF_FFFF
Interrupt Vector Register
Eingang mit dem höchstprioren anstehenden Interrupt Request
Bit-Nr
3:0
Bit-Nr
3–0
7
Addr.: 0x5000_0000
Beschreibung
Nummer des auszuwählenden Eingangs (Binärcode)
0=FIQ-Deklaration ignorieren
1=FIQ-Deklaration berücksichtigen
R/W
Addr.: 0x5000_0010
Default: 0x0000_0000
Fast Interrupt Request 2 Select Register
Deklaration eines IRQ-Eingangs als FIQ7 (Eingang FIQ7 am FIQ-Interruptcontroller)
Name
FIQ2SREG
FIQ2SENABLE
Beschreibung
Nummer des auszuwählenden Eingangs (Binärcode)
0=FIQ-Deklaration ignorieren
1=FIQ-Deklaration berücksichtigen
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
26
ERTEC 200 Handbuch
Version 1.1.0
IRQACK
Beschreibung
Bit-Nr
3–0
31 - 4
R
FIQACK
Beschreibung
Bit-Nr
2–0
31 – 3
R
Bit-Nr
3–0
7
Bit-Nr
0
W
Name
IRCLVEC
unused
Bit-Nr
Bit-Nr
Bit-Nr
2–0
7–3
Default: ----
Beschreibung
Binärcode der Eingangsnummer des zu loeschenden Requests
Name
MASKALL
Addr.: 0x5000_0020
Default: '1'
Beschreibung
'0' = Freigabe aller nicht maskierten IRQ-Interrupteingaenge
(Beruecksichtigung der gesetzten Maskenbits)
'1' = Globale Sperre aller IRQ-Interrupteingaenge
(unabhaengig von der Interruptmaske)
W
Addr.: 0x5000_0024
Default: ----
End of Interrupt (IRQ)
Teilt dem IRQ-Interruptcontroller die Beendigung der zum aktuellen Request gehörigen Interrupt
Service Routine mit
Name
Beschreibung
nicht genutzt
W
Addr.: 0x5000_0028
Default: ----
End of Interrupt (FIQ)
Teilt dem FIQ-Interruptcontroller die Beendigung der zum Fast Interrupt Request gehörigen
Interrupt Service Routine mit
Name
Beschreibung
nicht genutzt
FIQPR0
…
FIQPR7
Beschreibung
Default: 0xFFFF_FFFF
Mask all Interrupts
Globale Sperre aller IRQ-Interrupteingaenge
FIQEND
Beschreibung
Addr.: 0x5000_001C
R/W
IRQEND
Beschreibung
Addr.: 0x5000_0018
Interrupt Request Clear Vector
Direktes Loeschen eines Interrupt Requests im Interrupt Request Register
MASKALL
Beschreibung
Default: 0xFFFF_FFFF
Fast Interrupt Vector Register mit FIQ Acknowledge
Bestaetigung des Fast Interrupt Request durch Lesen des zugehoerigen
Interrupt Vectors
Name
Beschreibung
FIVEC
Binärcode der FIQ-Nummer
Vektorkennung
gültiger FIQ-Vektor: immer ‘1’
Default-Vektor: immer ‘1’ (auch Bits 2 – 0).
IRCLVEC
Beschreibung
Addr.: 0x5000_0014
Interrupt Vector Register mit IRQ Acknowledge
Bestätigung des höchstprioren anstehenden Interrupt Request durch Lesen des
zugehörigen Interrupt Vectors
Name
Beschreibung
IRVEC
Binärcode der Eingangsnummer
Vektorkennung
gültiger IRQ-Vektor: immer ‘0’.
Default-Vektor: immer ‘1’ (auch Bits 3 – 0).
R/W
Addr.: 0x5000_002C
Default: 0x0000_0007
Addr.: 0x5000_0048
Default: 0x0000_0007
….
R/W
FIQ Priority Register
Priorität des Fast Interrupt Requests am Eingang FIQ0 .. FIQ7 des FIQ-Interruptcontrollers
Name
FIQPR0 .. 7
nicht genutzt
Beschreibung
Binärcode der Priorität
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
27
ERTEC 200 Handbuch
Version 1.1.0
FIQISR
R
Beschreibung
Bit.-Nr
7–0
Name
FIQISR
FIQIRR
Name
FIQIRR
Beschreibung
Bit.-Nr
15 – 0
Name
IRREG
Bit.-Nr
15 – 0
Default: 0x0000_00FF
Addr.: 0x5000_0058
Default:0x0000_01xx
Beschreibung
Interrupteingang 0 – 15
0=Interrupt Request inaktiv/1=Interrupt Request aktiv
Bit 5, 4, 3, 2 abhängig von GPIO 31, 30, 1, 0
R/W
Addr.: 0x5000_005C
Default: 0x0000_FFFF
Interrupt Mask Register
Freigabe/Sperre der Interrupteingänge
Name
MASKREG
Beschreibung
Interrupteingang 0 – 15
0=Interrupteingang freigegeben/1=Interrupteingang gesperrt
R
Addr.: 0x5000_0060
Default: 0x0000_0000
In Service Register
Anzeige der von der CPU bestätigten Interrupt Requests
Name
ISREG
TRIGREG
Beschreibung
Addr.: 0x5000_0054
Beschreibung
FIQ-Interrupt-Eingang 0 – 7
0' = Interrupteingang freigegeben
'1' = Interrupteingang gesperrt
R
ISREG
Beschreibung
R/W
Interrupt Request Register
Speicherung der aufgetretenen Interrupt Requests
MASKREG
Bit.-Nr
15 – 0
Beschreibung
Eingänge 0 – 7 des FIQ-Interruptcontrollers
'0' = kein Request
'1' = Request ist aufgetreten
Name
FIQ_MASKREG
Beschreibung
Beschreibung
Default: 0x0000_0020
Interrupt-Mask-Register für FIQ
Freigabe/Sperre der FIQ-Interrupt-Eingaenge
IRREG
Bit.-Nr
15 – 0
Addr.: 0x5000_0050
FIQ Request Register
Anzeige der Anhand einer positiven Flanke erkannten Fast Interrupt Requests
FIQ_MASKREG
Bit.-Nr
7–0
Default: 0x0000_0000
Beschreibung
Eingänge 0 – 7 des FIQ-Interruptcontrollers
'0' = Fast Interrupt Request nicht bestätigt
'1' = Fast Interrupt Request wurde bestätigt
R
Beschreibung
Bit.-Nr
7–0
Addr.: 0x5000_004C
FIQ In Service Register
Anzeige der von der CPU bestätigten Fast Interrupt Requests
Beschreibung
Interrupteingang 0 – 15
0=Interrupt Request nicht bestätigt
1=Interrupt Request wurde bestätigt
R/W
Addr.: 0x5000_0064
Default: 0x0000_0000
Trigger Select Register
Auswahl der Interrupterkennung
Name
TRIGREG
Beschreibung
Interrupteingang 0 – 15
0=Interrupterkennung per Flanke
1=Interrupterkennung per Pegel
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
28
ERTEC 200 Handbuch
Version 1.1.0
EDGEREG
Beschreibung
Bit.-Nr
15 – 0
R/W
SWIRREG
Beschreibung
Bit.-Nr
15 – 0
Bit-Nr
3–0
Default: 0x0000_0000
R/W
Addr.: 0x5000_006C
Default: 0x0000_0000
Software Interrupt Register
Vorgabe von Interrupt Requests
Name
SWIRREG
PRIOREG 0
…
PRIOREG 15
Beschreibung
Addr.: 0x5000_0068
Edge Select Register
Auswahl der Flanke zur Interrupterkennung
(nur wenn für den zugehörigen Eingang Flankenerkennung eingestellt ist)
Name
Beschreibung
EDGEREG
Interrupteingang 0 – 15
0=Interrupterkennung per positiver Flanke
1=Interrupterkennung per negativer Flanke
Beschreibung
Interrupteingang 0 – 15
0=kein Interrupt Request
1=Interrupt Request setzen
R/W
Addr.: 0x5000_0070
Default: 0x0000_000F
Addr.: 0x5000_00AC
Default: 0x0000_000F
….
R/W
Priority Register
Vorgabe der Priorität eines Interrupt Requests am zugehörigen Eingang
Name
PRIOREG
Beschreibung
Binärcode der Priorität
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
29
ERTEC 200 Handbuch
Version 1.1.0
2.10 ARM946E-S - Register
Der ARM946E-S verwendet CP15-Register für System-Kontrolle.
Folgende Einstellungen sind damit möglich:
•
Cache-Type und Cache-Memory-Bereich konfigurieren
•
Tightly-Coupled Memory-Bereich konfigurieren
•
Memory-Protection-Unit für verschiedene Regionen und Speichertypen konfigurieren
•
System Optionen parametrieren
•
„Little-Endian“ oder „Big-Endian“ Operationen konfigurieren.
Register
Zugriff
Beschreibung
0
R
ID-Code-Register (1)
Cache-Type-Register (1)
Tightly-Coupled Memory Size-Register (2)
1
W/R
Control-Register
2
W/R
Cache-Configuration-Register (2)
3
W/R
Write-Buffer-Control-Register
4
xxx
Undefiniert
5
W/R
Access-Permission-Register (2)
6
W/R
Protection-Region-Base/Size-Register (2)
7
W
Cache-Operation-Register
8
xxx
Undefiniert
9
W/R
Cache-Lockdown-Register (2)
10
xxx
Undefiniert
11
xxx
Undefiniert
12
xxx
Undefiniert
13
W/R
Trace-Process-ID-Register
14
xxx
15
W/R
Undefiniert
RAM/TAG-BIST-Test-Register (1)
Test-State-Register (1)
Cache-Debug-Index-Register (1)
Trace-Control-Register
Tabelle 5: CP15 Register - Übersicht
(1) Register beinhalten mehrere Information die durch das„opcode_2“- oder „CRm“-Feld ausgewählt werden.
(2) Separate Register für Instruction und Data (siehe detaillierte Beschreibung der Register).
Undefiniert bedeutet:
Beim Lesen dieser Register ist der gelesene Wert undefiniert.
Beim Schreiben auf diese Register kann es zu unvorhersehbaren Konfigurationsänderungen im ARM946 kommen.
Eine genaue Beschreibung der ARM946-Register ist in den Dokumenten /1/ und /2/ nachzulesen.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
30
ERTEC 200 Handbuch
Version 1.1.0
3
Bussystem des ERTEC 200
Der ERTEC 200 besitzt intern zwei interne Busse.
ƒ
hochperformanten Kommunikationsbus (Multilayer AHB-Bus)
ƒ
Peripheriebus (APB-Bus)
Folgende Funktionsblöcke sind direkt am Multi-Layer AHB-Bus angeschlossen:
ƒ
ARM946E-S
(Master)
ƒ
IRT-Switch
(Master/Slave)
ƒ
LBU
(Master)
ƒ
Interrupt-Controller
(Slave)
ƒ
EMIF-Interface
(Slave)
ƒ
DMA-Controller
(Master/Slave)
Über eine AHB/APB-Bridge können die Master auf die restliche Peripherie zugreifen, die am niederperformanten APBBus angeschlossen sind.
3.1
Kommunikationsbus „Multi-Layer AHB“
Der Multi-Layer AHB Bus zeichnet sich durch eine hohe Busverfügbarkeit und Datenübertragung aus. Es ist ein 32-Bit
breiter multimasterfähiger Bus. Er arbeitet mit einer Frequenz von 50 MHz und besitzt die Funktionalität des ARM-AHBBusses (siehe Dokument /4/ Kapitel 3). Durch Zusammenschaltung mehrerer AHB-Segmente im Multi-Layer-AHB-Bus
können 4 Master gleichzeitig auf verschiedene Slaves zugreifen.
3.1.1
AHB-Arbiter
Die Zugriffssteuerung bei gleichzeitigen Zugriff mehrerer Master auf einen Slave erfolgt durch Arbiter. Jeder
AHB-Arbiter verwendet das gleiche Arbitrierungsverfahren. Eingestellt ist „Round-Robin“. Alternativ kann durch
Parametrierung des Bits ARB_MODE im System-Control-Register M_LOCK_CNTL eine fest vorgegebene PrioritätsZuordnung der AHB-Master eingestellt werden. Wegen der dynamischen Abläufe am Multilayer-AHB-Bus sollte auf eine
feste Prioritätszuordnung verzichtet werden. Das Arbitrierverfahren Round-Robin verhindert ein gegenseitiges Blockieren
der AHB-Master für einen längeren Zeitraum am Multi-Layer-AHB-Bus.
Bei der festen Prioritätszuordnung hat die höchste Priorität der ARM, gefolgt von IRT, DMA und LBU mit der niedrigsten
Priorität.
3.1.2
AHB-Master-Slave-Kopplung
In der folgenden Tabelle ist dargestellt welcher AHB-Master mit welchem AHB-Slave kommuniziert.
AHB-Master-Slave-Kopplung
Slave
Master
APB
Slave 1
EMIF
Slave 2
DMA
Slave 3
IRT
Slave 4
INT-Control
Slave 5
ARM
X
X
X
X
X
IRT
X
DMA
X
X
LBU
X
X
X
Tabelle 6: Übersicht AHB-Master-Slave Zugriffe
Bei regelungsrelevanten Anwendungen ist darauf zu achten, dass sich die AHB-Master nicht gegenseitig über einen
längeren Zeitraum blockieren. Dies wäre möglich wenn z.B. IRT-Master und ARM-Master zeitversetzt auf den gleichen
EMIF-Slave zugreifen wollen. In diesem Fall müsste der ARM-Master in einem „Wait“ verweilen bis der IRT-Master den
EMIF-Slave wieder freigibt. Um dies zu Verhindern hat der IRT-Switch eine Überwachung eingebaut, die nach 8
aufeinanderfolgenden Datentransfers (Burst- oder Singlezugriff) den Slave kurzzeitig über einen IDLE-State freigibt. In
dieser Phase kann dann ein anderer AHB-Master auf diesen Slave zugreifen.
3.2
Peripheriebus APB
Der APB-Bus ist über eine AHB/APB-Bridge am Multi-Layer-AHB-Bus angeschlossen. Der APB-Bus ist 32-Bit breit und
arbeitet mit einer Frequenz von 50 MHz.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
31
ERTEC 200 Handbuch
Version 1.1.0
4
Peripherie am APB-Bus
Der Baustein ERTEC 200 besitzt mehrere Peripherie-IO-Funktionsblöcke. Diese sind am 32-Bit-Peripheriebus APB
angeschlossen. Auf die Peripherie können der ARM946E-S, DMA-Controller und LBU – Interface zugreifen. Folgende
Peripherie ist verfügbar:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Boot-ROM 8kByte
GPIO 32-Bit (*)
UART
SPI-Interface
Timer 0 - 2
F-Timer
Watchdog
System-Control-Register
(*)Die vollen 32 Bit für GPIO In-/Output stehen nur dann zur Verfügung wenn keine alternativen Funktionen parametriert sind.
Die am APB-Bus angeschlossenen Peripherie-Funktionsblöcke verfügen über unterschiedlich breite Dateninterfaces.
Aus der folgenden Tabelle sind die Datenbreite und die unterstützten Zugriffsmechanismen ersichtlich. Nicht erlaubte
Zugriffsarten, wie z.B. byteweises Laden von Timer-Reload-Register, werden hardwaremäßig nicht abgefangen.
Bit 31:24
Zugriffsarten
Bit 23:16
Bit 15:8
Bit 7:0
Waitstates am AHB
Read
Write
32 Bit
8 Bit
8 Bit
8 Bit
16 Bit
Funktionsblock
Timer0/1/2, F-Counter,
System-Control-Register,
Watchdog, Boot_Rom
2
0
2
0
GPIO
2
2
0
0
SPI1
UART
8 Bit
16 Bit
32 Bit
-
-
16 Bit
-
8 Bit
Tabelle 7: Zugriffsart und Datenbreite der Peripherie
Zugriffe auf nicht ausdekodierte Speicher- bzw. Registerbereiche lösen den FIQ1-Interrupt aus. Abgeschlossen wird der
Zugriff durch einen generierten „Ready“ vom APB-Adressdecoder. Schreibzugriffe haben keinen Einfluß auf das System.
Lesezugriffe liefern undefinierte Daten.
4.1
BOOT-ROM
Im ERTEC 200 ist ein BOOT-ROM implementiert, der mit seinem integrierten Opcode einen Software-Download von
einem externen Speichermedium unterstützt. Für die unterschiedlichen Boot- und Download-Modes stehen verschiedene
Routinen zur Verfügung. Um die Quelle und den Mode auszuwählen stehen am ERTEC 200 vier Eingänge BOOT[3:0]
zur Verfügung. Während der aktiven Resetphase werden die Boot-Pins eingelesen und im Register BOOT_REG im
System-Control-Registerbereich abgespeichert.
Nach Anlauf des Prozessors wird anhand der Codierung in die entsprechende BOOT-Routine verzweigt und der
Download durchgeführt. Nach Beendigung des Downloads können die geladenen Funktionen ausgeführt werden.
Nachdem RESET inaktiv geworden ist, stehen die BOOT-Pins als normale EMIF -Pins zur Verfügung.
Folgende Kriterien führen zu einem Bootvorgang:
•
HW-Reset
•
Watchdog-Reset
•
Software-Reset durch Setzen des Bits XRES_SOFT im Reset-Control-Register (System-Control-RegisterBereich)
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
32
ERTEC 200 Handbuch
Version 1.1.0
Folgende Download-Modi werden unterstützt:
BOOT(3)
0
0
0
1
1
1
0
0
0
0
0
1
BOOT(2)
0
0
0
0
0
0
0
1
1
1
1
0
BOOT(1)
0
0
1
0
0
1
1
0
0
1
1
1
BOOT(0)
0
1
0
0
1
0
1
0
1
0
1
1
BOOTEN VON
Externem ROM 8 Bit Datenbreite
Externem ROM16 Bit Datenbreite
Externem ROM 32 Bit Datenbreite
Fast Ext- ROM 8 Bit Datenbreite
Fast Ext-ROM 16 Bit Datenbreite
Fast Ext-ROM 32 Bit Datenbreite
Reserviert
Reserviert
SPI1
UART
LBU
Reserviert
Tabelle 8: Auswahl der Downloadquelle
ƒ
ƒ
ƒ
ƒ
Booten von FLASH oder EEPROM mit 8/16/32-Bit Datenbreite über EMIF Peripheral-Bank0 (CS_PER0_N)
Booten von seriellen EEPROMS/Flashes über die SPI-Schnittstelle. Als Chip-Select für den seriellen BOOT-ROM
wird die Steuerleitung GPIO[22] verwendet. Die Auswahl des Speichermediums erfolgt über Steuerleitung GPIO[23].
Booten von einem Hostprozessorsysteme über den LBU-Bus. Hier wird der Code vom Hostprozessor
heruntergeladen.
Booten von UART. Mit der Bootstrap-Methode wird zunächst eine Routine zur Bedienung der Seriellen Schnittstelle
heruntergeladen, die dann den eigentlichen Download des Programms steuert.
4.1.1
Booten von externem ROM
Dieser Bootmodus ist vorgesehen für Anwendungen, bei denen der größte Teil der Anwender-Firmware auf dem
ARM946E-S Prozessor abläuft. Der Bootvorgang wird vollständig durch das externe Image bestimmt. Damit kann der
Bootvorgang mit einer minimalen Initialisierung durchgeführt werden.
4.1.2
Booten über SPI
Als SPI-Quelle können sowohl SPI-kompatible EEPROM’s als auch SPI-kompatible Data-Flash’s verwendet werden. Der
Typ wird über die GPIO-Leitung GPIO[23] ausgewählt:
•
GPIO[23] = 0
Æ
SPI-kompatibler Data-Flash
z.B. AT45DB011B
•
GPIO[23] = 1
Æ
SPI-kompatibler EEPROM
z.B. AT25HP256
Als Chip-Select für den SDI-Speicher wird die GPIO-Leitung GPIO[22] von der Bootsoftware verwendet.
Prinzipiell werden die seriellen Protokolle von Motorola, Texas Instrument und NSC unterstützt.
4.1.3
Booten über UART
Im Bootmode über UART wird eine Bootstrap-Methodik angewandt, die dem ERTEC200 zunächst eine Routine zur
Bedienung der seriellen Schnitttstelle herunterlädt, die dann den eigentlichen Download des Programmes durchführt.
Nach dem Bootvorgang kann das UART-Interface anderwertig benutzt werden (z.B. als Terminalschnittstelle).
4.1.4
Booten über LBU
Das Booten über LBU-Interface muß aktiv von dem externen Host-Prozessor ausgeführt werden. Der LBU-Host kann
dann den Anwender-Code in die Speicher des ERTEC 200 übertragen.
Die ARM-Boot-Software für das Booten von LBU liest keine Baugruppenkennung aus. Die Baugruppen-Kennung muß in
einem Speichermedium (z.B. SPI-EEPROM) abgelegt sein, die der Host-Prozessor über das LBU-Interface ausliest.
Abhängig von der Kennung startet der Host-Prozessor seinen Boot-Vorgang mit der passenden Anwendersoftware.
4.1.5
Memory-Swapping
Der Reset-Vektor des ARM946E-S zeigt auf Adresse 0x0000_0000. Deshalb wird nach RESET das Boot-ROM ab der
Adresse 0x0000_0000 gelegt. Zusätzlich kann das Boot-ROM in seinem Spiegelbereich angesprochen werden (siehe
Kapitel 10.2).Nach Beendigung des Boot-Vorganges kann SRAM oder SDRAM auf Adresse 0x0000_0000 geswappt
werden, um die Exception-Vektor-Tabelle für den ARM946E-S ab Adresse 0x0000_0000 - 0x0000_001F anlegen zu
können. Die Originaladressbereiche für Boot-Rom, SRAM und SDRAM werden vom Memora-Swapping nicht beeinflußt.
Das Memory-Swapping erfolgt im System-Control-Register MEM-SWAP.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
33
ERTEC 200 Handbuch
Version 1.1.0
4.2
General Purpose IO (GPIO)
Es stehen maximal 45 General Purpose Inputs/Outputs im ERTEC 200 zur Verfügung. Diese sind aufgeteilt in zwei
Gruppen:
•
GPIO[31:0]
32 Bits am Peripherie-Bus APB
•
GPIO[44:32]
13 Bits als alternative Funktion am LBU-Interface
Die GPIO’s [31 : 0] können folgendermaßen genutzt werden
•
Inputs
•
Outputs
•
eine von maximal 3 zusätzlichen Sonderfunktionen (Watchdog, Timer, F-Timer, UART, SPI, ETM und MC-PLL)
Die Richtung der IO’s ist bitweise programmierbar im Register „GPIO_IOCTRL“.
Die Funktionsauswahl der IO-Sonderfunktionen ist programmierbar in den Registern „GPIO_PORT_MODE_L“ und
„GPIO_PORT_MODE_H“.
Die GPIO-Eingänge [1 : 0] und [31 : 30] können zusätzlich als externe Interrupteingänge verwendet werden. Sie sind am
IRQ-Interrupt-Controller des ARM946 angeschlossen. Mit dem Register GPIO_POLSEL kann die Polarität der GPIOInterrupts festgelegt werden (siehe GPIO-Register Beschreibung)
Die folgende Abbildung zeigt den Aufbau eines GPIO[31 : 0]-Pins als normale I/O-Funktion oder als alternative Funktion.
Alternate Funktion 1,2,3 (falls Eingang)
GPIO
IN
Pin des
ERTEC200
GPIO
OUT (i)
GPIO(i)
Alternate Funktion 1,2,3 (falls Ausgang)
GPIO_PORT
MODE_L&..._H
(2*i+1, 2*i)
GPIO
IOCTRL(i)
Abbildung 4: GPIO Zelle am GPIO-Port [31:0] des ERTEC 200
Die GPIO’s [44 : 32] stehen am LBU-Bus zur Verfügung, wenn die LBU-Schnittstelle nicht verwendet wird. Die Auswahl
erfolgt mit dem Konfigurationspin CONFIG[2] = 1. Die GPIOs[44:32] können dann als normale Inputs oder Outputs
verwendet werden. Die Richtung der GPIO’s[44:32] ist bitweise programmierbar im Register „GPIO_IOCTRL2“.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
34
ERTEC 200 Handbuch
Version 1.1.0
4.2.1
Adressbelegung GPIO-Register
Die GPIO-Register sind 32-Bit breit. Die Register können mit 8-Bit-, 16-Bit- oder 32-Bit-Zugriffe gelesen oder
beschrieben werden.
Register-Name
GPIO (Basisadresse 0x4000_2500)
Offsetadresse Adressbereich
Zugriff
Default
Beschreibung
0xFFFFFFFF
Konfigurationsregister für
GPIO
GPIO_IOCTRL
0x0000
4 Byte
W/R
GPIO_OUT
0x0004
4 Byte
W/R
0x00000000
Outputregister für GPIO
GPIO_IN
0x0008
4 Byte
R
Portbelegung
Inputregister für GPIO
GPIO_PORT_MODE_L
0x000C
4 Byte
W/R
0x00000000
GPIO_PORT_MODE_H
0x0010
4 Byte
W/R
0x00000000
GPIO_POLSEL
0x0014
4 Byte
W/R
0x00000000
GPIO2_IOCTRL
0x0020
4 Byte
W/R
0x00001FFF
GPIO2_OUT
0x0024
4 Byte
W/R
0x00000000
Outputregister für GPIO2
GPIO2_IN
0x0028
4 Byte
R
Portbelegung
Inputregister für GPIO2
Funktionsbelegung
GBIO-Port 0..15
Funktionsbelegung
GBIO-Port 16.31
Interrupt-Polarität GPIOInterrupts
Konfigurationsregister für
GPIO2
Tabelle 9: Übersicht GPIO-Register
4.2.2
GPIO-Register Beschreibung
GPIO_IOCTRL
Beschreibung
Bit.-Nr
31 - 0
W/R
Addr.: 0x4000_2500
Default: 0xFFFF_FFFF
Konfigurationsregister für General Purpose IO[31:0]
Name
GPIO_IOCTRL[31:0]
Beschreibung
0 : GPIOx ist Output
1: GPIOx ist Input
x = Bit 0 ... 31
GPIO_ OUT
Beschreibung
Bit-Nr
31..0
W/R
Name
GPIO_OUT[31:0]
GPIO_IN
Beschreibung
Bit-Nr
31..0
Bit-Nr
1:0
3:2
5:4
7:6
9:8
11:10
13:12
15:14
17:16
Default: 0x0000_0000
Beschreibung
0: GPIO-Outputx = 0, 1: GPIO-Outputx = 1
R
Addr.: 0x4000_2508
Default: Portbelegung
Inputregister für General Purpose IO[31:0]
Name
GPIO_IN[31:0]
GPIO_PORT_MODE_L
Beschreibung
Addr.: 0x4000_2504
Outputregister für General Purpose IO[31:0]
Beschreibung
0: GPIO-Inputx = 0, 1: GPIO-Inputx = 1
W/R
Addr.: 0x4000_250C
Default: 0x0000_0000
Konfigurationsregister für GP-IO[15:0]
Funktionsbelegung :
00 = Funktion 0; 01 = Funktion 1; 10 = Funktion 2; 11 = Funktion 3
Name
Beschreibung
GPIO0_PORT_MODE
Port GPIO[0];
GPIO1_PORT_MODE
Port GPIO[1];
GPIO2_PORT_MODE
Port GPIO[2];
GPIO3_PORT_MODE
Port GPIO[3];
GPIO4_PORT_MODE
Port GPIO[4];
GPIO5_PORT_MODE
Port GPIO[5];
GPIO6_PORT_MODE
Port GPIO[6];
GPIO7_PORT_MODE
Port GPIO[7];
GPIO8_PORT_MODE
Port GPIO[8];
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
35
ERTEC 200 Handbuch
Version 1.1.0
19:18
21:20
23:22
25:24
27:26
29:28
31:30
GPIO9_PORT_MODE
GPIO10_PORT_MODE
GPIO11_PORT_MODE
GPIO12_PORT_MODE
GPIO13_PORT_MODE
GPIO14_PORT_MODE
GPIO15_PORT_MODE
GPIO_PORT_MODE_H
Beschreibung
Bit-Nr
1:0
3:2
5:4
7:6
9:8
11:10
13:12
15:14
17:16
19:18
21:20
23:22
25:24
27:26
29:28
31:30
Beschreibung
Name
Reserviert
POLSEL GPIO31
2
POLSEL GPIO30
1
POLSEL GPIO1
0
POLSEL GPIO0
GPIO2_ IOCTRL
Beschreibung
Default: 0x0000_0000
W/R
Addr.: 0x4000_2514
Default: 0x0000_0000
Beschreibung
Reserviert
0: GPIO31 wird nicht invertiert zur ICU [IRQ5]
1: GPIO31 wird invertiert zur ICU [IRQ5]
0: GPIO30 wird nicht invertiert zur ICU [IRQ4]
1: GPIO30 wird invertiert zur ICU [IRQ4]
0: GPIO1 wird nicht invertiert zur ICU [IRQ3]
1: GPIO1 wird invertiert zur ICU [IRQ3]
0: GPIO0 wird nicht invertiert zur ICU [IRQ2]
1: GPIO0 wird invertiert zur ICU [IRQ2]
W/R
Addr.: 0x4000_2520
Default: 0x0000_1FFF
Konfigurationsregister für General Purpose IOs [44:32]
Name
Reserviert
GPIO2_IOCTRL[44:32]
GPIO2_ OUT
Bit-Nr
31..13
12..0
Addr.: 0x4000_2510
Interrupt-Polarität für GPIO-Interrupts [31/30/1/0]
Bit-Nr
31..4
3
Beschreibung
W/R
Konfigurationsregister für GP-IO[31:16]
Funktionsbelegung :
00 = Funktion 0; 01 = Funktion 1; 10 = Funktion 2; 11 = Funktion 3
Name
Beschreibung
GPIO16_PORT_MODE
Port GPIO[16];
GPIO17_PORT_MODE
Port GPIO[17];
GPIO18_PORT_MODE
Port GPIO[18];
GPIO19_PORT_MODE
Port GPIO[19];
GPIO20_PORT_MODE
Port GPIO[20];
GPIO21_PORT_MODE
Port GPIO[21];
GPIO22_PORT_MODE
Port GPIO[22];
GPIO23_PORT_MODE
Port GPIO[23];
GPIO24_PORT_MODE
Port GPIO[24];
GPIO25_PORT_MODE
Port GPIO[25];
GPIO26_PORT_MODE
Port GPIO[26];
GPIO27_PORT_MODE
Port GPIO[27];
GPIO28_PORT_MODE
Port GPIO[28];
GPIO29_PORT_MODE
Port GPIO[29];
GPIO30_PORT_MODE
Port GPIO[30];
GPIO31_PORT_MODE
Port GPIO[31];
GPIO_POLSEL
Bit-Nr
31..13
12..0
Port GPIO[9];
Port GPIO[10];
Port GPIO[11];
Port GPIO[12];
Port GPIO[13];
Port GPIO[14];
Port GPIO[15];
Beschreibung
Reserviert
0: GPIOx = Output, 1: GPIOx = Input
W/R
Addr.: 0x4000_2524
Default: 0x0000_0000
Outputregister für General Purpose IOs [44:32]
Name
Reserviert
GPIO2_OUT[44:32]
Beschreibung
Reserviert
0: GPIO-Outputx = 0, 1: GPIO-Outputx = 1
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
36
ERTEC 200 Handbuch
Version 1.1.0
GPIO2_ IN
Beschreibung
R
Addr.: 0x4000_2528
Bit-Nr
Name
Beschreibung
31..13
12..0
Reserviert
GPIO2_IN[44:32]
Reserviert
0: GPIO-Inputx = 0, 1: GPIO-Inputx = 1
4.3
Default: Portbelegung
Inputregister für General Purpose IOs [44:32]
Timer 0/1/2
Im ERTEC 200 sind drei voneinander unabhängige Timer integriert. Sie können zur internen Überwachung von diversen
Softwareroutinen verwendet werden. Jeder Timer ist ein Interrupt zugeordnet, der am IRQ-Interrupt-Controller des
ARM946 angeschlossen ist. Der Zugriff auf die 3 Timer erfolgt immer 32-Bit breit.
4.3.1
Timer 0 und 1
Beide Timer beinhalten folgende Funktionalität:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
32-Bit Zählregister
Eingangstakt schaltbar auf:
50 MHz Takt (Defaulteinstellung)
8-Bit Vorteiler pro Timer (getrennt parametrierbar)
Abwärtszählend
Load-/Reloadfunktion
Start- , Stop- und Continue-Funktion
Interrupt beim Erreichen vom Zählerstand 0
Zählregister schreib- und lesbar
Die Timer 0 / 1 sind nach Reset deaktiviert. Eine Freigabe erfolgt im Status-/Control-Register des entsprechenden
Timers durch Setzen des Bits „RUN/XStop“. Der Timer zählt dann von seinem geladenen 32-Bit-Anfangswert abwärts.
Beim Erreichen des Timerwertes 0 wird ein Interrupt des Timers generiert. Der Interrupt kann dann vom IRQ-InterruptController ausgewertet werden.
Abhängig von Reload-Mode verhalten sich die beiden Timer folgendermaßen:
•
Reload-Mode = 0 Entsprechender Timer hält nach erreichen des Wert = 0 an.
•
Reload-Mode = 1 Entsprechender Timer wird mit dem 32-Bit-Reloadwert neu geladen und automatisch neu
gestartet.
Der Timer kann auch während der normalen Timerfunktion (Zählwert != 0) mit dem Reloadwert neu geladen werden.
Dies erfolgt durch Setzen des Bits „LOAD“ im Status-/Control-Register des entsprechenden Timers.
Im Normalfall ist der Timertakt 50 Mhz der von der internen PLL erzeugt wird. Jeder Timer kann auch mit einem 8-Bit
Vorteiler betrieben werden. Dadurch kann die Timerzeit entsprechend erhöht werden.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
37
ERTEC 200 Handbuch
Version 1.1.0
4.3.1.1
Timer 0/1 – Interrupts
Der Timer 0/1 Interrupt ist ab dem Zeitraum aktiv (High) wenn der entsprechende Timerwert auf dem Wert 0
heruntergezählt ist.
Durch den automatischen Reload oder durch anwenderspezifisches Setzen des Bits „LOAD“ wird der Timer-Interrupt
deaktiviert (Low). Der Interrupt wird nicht zurückgesetzt, wenn der Reloadwert 0 geladen wird. Wenn der Timer
deaktiviert wird (Run/XStop = 0) wird der Interrupt ebenfalls deaktiviert.
Wird der Timer ohne Vorteiler im Reload-Mode betrieben, so steht der Interrupt nur einen 50-MHz-Takt an. Dies ist beim
Parametrieren des entsprechenden Interrupt-Einganges zu berücksichtigen (Pegel-/Flankenauswertung).
4.3.1.2
•
•
•
•
•
•
•
•
4.3.1.3
Timer 0/1 – Vorteiler
Für Timer 0/1 steht je ein 8 Bit Vorteiler zur Verfügung.
Beide Vorteiler sind nach RESET deaktiviert und werden durch Setzen des Bit „Run/xStop_V“ im Timer-ControlRegister aktiviert.
Beide Vorteiler sind unabhängig voneinander einstellbar.
Beide Vorteiler besitzt ein eigenes 8-Bit Reload-Register.
Ein Reloadwert bzw. Anfangswert des Vorteilers mit dem Wert 0 bewirkt keine Vorteilung.
Der aktuelle Vorteilerwert kann nicht ausgelesen werden.
Für die Vorteiler existieren keine Statusbits die den Wert 0 anzeigen.
Die Vorteiler laufen immer im Reload-Mode.
Kaskadierung der Timer 0/1
Durch Setzen des Bits „Kaskadierung“ können beide Timer zu einem 64-Bit Timer kaskadiert werden.
Die Freigabe des kaskadierten Timers erfolgt über das Status-/Control- Register des Timer1. Aktiv ist der Interrupt des
Timer 1. Der Interrupt des Timer0 muß bei kaskadierten Timer gesperrt werden. Bei Einstellung mit Vorteiler wird der
Vorteiler von Timer1 verwendet.
Der Anwender muß beim Auslesen des 64-Bit-Timers für die Konsistenz der Daten in seiner Software sorgen.
4.3.2
Timer 2
Der Timer2 beinhalten folgende Funktionalität:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
16-Bit Zählregister
Eingangstakt fest auf 50 MHz
Aufwärtszählend
16-Bit Reloadwert
Start- , Stop- Funktion
Interrupt beim Erreichen vom Zählerstand 0
Verschiedene Funktionsmodi einstellbar (One-Shot-/Umlauf-/Retrigger-Mode)
Der Timer 2 kann für allgemeine Überwachungsfunktionen verwendet werden.
Timer2-Modi:
•
One-Shot-Mode:
TIM2_CTRL_REGISTER( OneShot_Mode = 1, Timer_Mode = 0)
Wird der Timer2 mit Run/xStop_T2=1 gestartet, dann zählt er vom Wert Null aufwärts bis er den Reload-Wert
erreicht. Mit Erreichen des Reloadwertes wird der Timer 2 gestoppt und der Timer2-Interrupt generiert. Der
Timer2 bleibt auf dem Reloadwert stehen. Wird „RUN/xSTOP“ = 0 gesetzt dann wird der Timer2 auf Null
zurückgesetzt und der Timer2-Interrupt wieder deaktiviert.
•
Umlauf-Mode:
TIM2_CTRL_REGISTER( OneShot_Mode = 0, Timer_Mode = 0)
Wird der Timer mit Run/xStop_T2=1 gestartet, dann zählt er vom Wert Null aufwärts bis er den Reload-Wert
erreicht. Mit Erreichen des Reloadwertes wird der Timer2-Interrupt aktiviert, der Timer 2 auf Null zurückgesetzt
und der Zählvorgang fortgesetzt. Wird „RUN/xSTOP“ = 0 gesetzt dann wird der Timer2 gestoppt, der Timer2Wert auf Null zurückgesetzt und der Timer2-Interrupt wieder deaktiviert wenn dieser aktiviert war.
•
Retrigger-Mode:
TIM2_CTRL_REGISTER( OneShot_Mode = 0, Timer_Mode = 1)
Der Timer wird im One-Shot-Mode mit Retriggerung von UART-RxD betrieben. Wird der Timer mit
Run/xStop_T2=1 gestartet, dann zählt der Timer nur dann wenn die UART-RxD-Leitung auf Pegel „1“ liegt. Bei
Pegel „0“ wird der Timerwert auf Null zurückgesetzt. Der weitere Ablauf des Timers und die InterruptGenerierung ist identisch wie im One-Shot-Mode.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
38
ERTEC 200 Handbuch
Version 1.1.0
4.3.3
Adressbelegung Timer-Register
Die Timer-Register sind 32-Bit breit. Ein Lesen oder Beschreiben der Timer-Register ist nur in 32-Bit-Zugriff sinnvoll. Ein
Byteweises beschreiben wird aber hardwaremäßig nicht abgefangen.
Timer
Register-Name
(Basisadresse 0x4000_2000)
Offsetadresse Adressbereich
Zugriff
Default
Beschreibung
CTRL_STAT0
0x0000
4 Byte
R/W
0x00000000
Control/Status-Register Timer 0
CTRL_STAT1
0x0004
4 Byte
R/W
0x00000000
Control/Status-Register Timer 1
RELD0
0x0008
4 Byte
R/W
0x00000000
Reload-Register Timer 0
RELD1
0x000C
4 Byte
R/W
0x00000000
Reload-Register Timer 1
CTRL_PREDIV
0x0010
4 Byte
R/W
0x00000000 Control-Register für beide Vorteiler
RELD_PREDIV
0x0014
4 Byte
R/W
0x00000000 Reload-Register für beide Vorteiler
TIM0
0x0018
4 Byte
R
0x00000000
Timer 0-Wert Register
TIM1
0x001C
4 Byte
R
0x00000000
Timer 1-Wert Register
TIM2_CTRL
0x0020
4 Byte
R/W
0x00000000
Timer 2-Control Register
TIM2
0x0024
4 Byte
R
0x00000000
Timer 2-Zählwert Register
Tabelle 10: Übersicht Timer-Register
4.3.4
Timer-Register Beschreibung
CTRL_STAT0
Beschreibung
Bit-Nr
0
R/W
Default: 0x0000_0000
Control/Status Register 0. Konfiguration und Control Bits für den Timer Nr. 0 .
Name
Run/xStop *)
1
Load
2
Reload-Mode *)
3
4
5
Reserviert
Reserviert
Status
31-6
Reserviert
Achtung:
Addr.: 0x4000_2000
Beschreibung
Stop/Start des Timers:
0: Timer steht
1: Timer läuft
Anmerkung: Ist dieses Bit=0, ist der Interrupt des Timers inaktiv (0) und das
Status-Bit (Bit 5) ist zurückgesetzt (0).
Triggern=Laden des Timers mit dem Reload Register-Wert:
0: keine Bedeutung
1: Timer wird mit dem Wert des Reload Registers geladen
(unabhängig von Bit 0=Run/xStop)
Dieses Bit ist zwar rücklesbar, wirkt sich aber nur während des
Schreibzeitpunktes aus. Für das Triggern des Timers reicht das Schreiben
einer 1 auf dieses Bit; es wird keine 0/1-Flanke benötigt.
Reload-Mode (Continous Mode) des Timers:
0: Timer steht beim Timerwert 00000000h
1: Timer wird beim Timerwert 00000000h mit dem Reload
Register-Wert geladen und läuft weiter
Achtung: Sind die Timer 0 und 1 kaskadiert, hat die Reload-Mode-Einstellung
von Timer 0 keine Bedeutung.
Keine Bedeutung (schreib- und lesbar)
Keine Bedeutung (read=0)
Timer-Status (Schreiben wird ignoriert)
0: Timer ist nicht abgelaufen
1: Timer ist abgelaufen (Zählerstand 0 und Run/xStop=Bit 0=1)
Anmerkung: Dieses Bit kann nur dann als 1 gelesen werden, wenn
Run/xStop (Bit0) aktiv (1) ist.
Keine Bedeutung (read=0)
Die mit *) gekennzeichneten Bits gelten nicht, wenn diese Timer kaskadiert sind! Siehe dann
CTRL_STAT1
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
39
ERTEC 200 Handbuch
Version 1.1.0
CTRL_STAT1
Beschreibung
Bit-Nr
0
R/W
Name
Run/xStop *)
1
Load
2
Reload-Mode *)
3
4
5
Reserviert
Reserviert
Status
6
Kaskadierung
31-7
Achtung:
Reserviert
Beschreibung
Stop/Start des Timers:
0: Timer steht
1: Timer läuft
Anmerkung: Ist dieses Bit=0, ist der Interrupt des Timers inaktiv (0) und das
Status-Bit (Bit 5) ist zurückgesetzt (0).
Triggern=Laden des Timers mit dem Reload Register-Wert:
0: keine Bedeutung
1: Timer wird mit dem Wert des Reload Registers geladen
(unabhängig von Bit 0=Run/xStop)
Dieses Bit ist zwar rücklesbar, wirkt sich aber nur während des
Schreibzeitpunktes aus. Für das Triggern des Timers reicht das Schreiben
einer 1 auf dieses Bit; es wird keine 0/1-Flanke benötigt.
Reload-Mode (Continuos Mode) des Timers:
0: Timer steht beim Timerwert 00000000h
1: Timer wird beim Timerwert 00000000h mit dem Reload
Register-Wert geladen und läuft weiter
Keine Bedeutung (schreib- und lesbar)
Keine Bedeutung (read=0)
Timer-Status (Schreiben wird ignoriert)
0: Timer ist nicht abgelaufen
1: Timer ist abgelaufen (Zählerstand 0 und Run/xStop=Bit 0=1)
Anmerkung: Dieses Bit kann nur dann als 1 gelesen werden, wenn Run/xStop
(Bit0) aktiv (1) ist.
Kaskadierung des Timers
0: keine Bedeutung
1: Kaskadierung der Timer Nr.0 und 1.
Keine Bedeutung (read=0)
R/W
R/W
Beschreibung
Name
Reload [31:0]
Beschreibung
Addr.: 0x4000_2008
Addr.: 0x4000_200C
Default: 0x0000_0000
Default: 0x0000_0000
Reload Register 0-1. Reload-Wert für die Timer Nr.0-1.
CTRL_PREDIV
Bit-Nr
0
Default: 0x0000_0000
Die mit *) gekennzeichneten Bits gelten auch für die Timer 0, wenn die Timer kaskadiert sind!
RELD0
RELD1
Bit-Nr
31:0
Addr.: 0x4000_2004
Control/Status Register 1. Konfiguration und Control Bits für den Timer Nr. 1.
Beschreibung
Reload-Wert des Timers
R/W
Addr.: 0x4000_2010
Default: 0x0000_0000
Control Register für die 2 Vorteiler.
Name
Run/xStop_V0
1
Load_V0
2
Run/xStop_V1
3
Load_V1
31-4
Reserviert
Beschreibung
Stop/Start des Vorteilers Nr. 0:
0: Vorteiler Nr. 0 steht
1: Vorteiler Nr. 0 läuft
Triggern=Laden des Vorteilers Nr. 0 mit dem Reload Register-Wert:
0: keine Bedeutung
1: Vorteiler0 wird mit dem Wert des Reload Registers geladen
Dieses Bit ist zwar rücklesbar, das Triggern wirkt sich aber
nur während des Schreibzeitpunktes aus. Das Laden des Vorteilers erfolgt
unabhängig vom Zustand von Run/xStop_V0.
Stop/Start des Vorteilers Nr. 1:
0: Vorteiler Nr. 1 steht
1: Vorteiler Nr. 1 läuft
Triggern=Laden des Vorteilers Nr. 1 mit dem Reload Register-Wert:
0: keine Bedeutung
1: Vorteiler1 wird mit dem Wert des Reload Registers geladen
Dieses Bit ist zwar rücklesbar, das Triggern wirkt sich aber
nur während des Schreibzeitpunktes aus. Das Laden des Vorteilers erfolgt
unabhängig vom Zustand von Run/xStop_V1.
Keine Bedeutung (read=0)
Anmerkung zu den Vorteilern: Der aktuelle Zählerwert der Vorteiler ist nicht lesbar. Für die Vorteiler existieren auch
keine Statusbits, die den Zählerstand 0 anzeigen. Die Vorteiler laufen immer zyklisch (im Reload-Mode).
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
40
ERTEC 200 Handbuch
Version 1.1.0
RELD_PREDIV
Beschreibung
Bit-Nr
7:0
15:8
31-16
Name
Prediv [7:0]
Prediv [15:8]
Reserviert
TIM0
TIM1
Bit-Nr
31:19
18
Name
Timer [31:0]
Name
Reserviert
Timer_Mode
16
Run/xStop
Addr.: 0x4000_2020
Default: 0x0000_0000
Beschreibung
Reserviert
0: freilaufend
1: Retrigger über UART_RXD Signal (bei RXD auf log. '0')
0: Umlauf-Timer: Timer 2 wird bei Timer-Wert = Reload-Wert mit 0000h
geladen und läuft weiter
1: OneShot-Timer: Timer 2 bleibt stehen bei Timer-Wert = Reload-Wert
0: Stop Timer 2, Timer 2 rücksetzen, INT deaktivieren
1: Start Timer 2
Reloadwert des Timers 2
Reload [15:0]
TIM2
Bit-Nr
31:16
15:0
Default: 0x0000_0000
Default: 0x0000_0000
Beschreibung
Aktueller Wert des Timers
R/W
OneShot_Mode
Beschreibung
Addr.: 0x4000_2018
Addr.: 0x4000_201C
Timer 2 Control Register
17
15:0
Default: 0x0000_0000
Timer Register 0-1. Werte der Timer Nr. 0-1.
TIM2_CTRL
Beschreibung
Addr.: 0x4000_2014
Beschreibung
Reload-Wert des Vorteilers Nr. 0
Reload-Wert des Vorteilers Nr. 1
Keine Bedeutung (read=0)
R
R
Beschreibung
Bit-Nr
31:0
R/W
Reload-Register für die 2 Vorteiler.
R
Addr.: 0x4000_2024
Default: 0x0000_0000
Timer Register 2. Werte der Timer Nr. 2.
Name
Reserviert
Timer [15:0]
Beschreibung
Reserviert
Aktueller Wert des Timers 2
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
41
ERTEC 200 Handbuch
Version 1.1.0
4.4
F - Timer Funktion
Neben den Systemtimern ist im ERTEC 200 noch ein F-Timer integriert. Dieser Timer arbeitet unabhängig vom
Systemtakt und kann z.B. für fehlersichere Anwendungen genutzt werden. Der F-Timer wird über die alternative Funktion
„F_CLK“ am externen Eingang „BYP_CLK“ getriggert. Die externe Triggerung ist nicht möglich, wenn der ARM946E-S
mit reservierten Testmode (Config[4:3] = 11) betrieben wird.
Folgende Signalpins stehen jeweils für den F-Timer am ERTEC 200 zur Verfügung:
•
Externe Counterleitung
1
F_CLK
Funktionsbeschreibung:
Über den Eingangspin BYP_CLK (alternative Funktion F_CLK) wird das asynchrone Eingangssignal der externen
unabhängigen Zeitbasis auf eine Synchronisationsstufe aufgeschaltet. Um das Auftreten von metastabilen Zuständen
am Zählereingang auszuschließen, ist die Synchronisationsstufe mit 3 Flip-Flop-Stufen realisiert. In einer
nachgeschalteten Flankenerkennung werden die Zählimpulse generiert. Alle Flip-Flops laufen mit dem APB-Takt von 50
MHz.
Mit einem asynchronen Bausteinreset oder durch Beschreiben des F-Counter-Registers “FCOUNT_RES” mit dem Wert
0x XXXX 55AA (X bedeutet „don’t care“) setzt das F_COUNTER_VAL – Register zurück. Der nächste Zählimpuls setzt
den Zähler auf 0xFFFF FFFF und mit jedem weiteren Zählimpuls wird der Zählerstand dekrementiert. Das Register
FCOUNT_RES wird mit dem nächsten Takt wieder gelöscht.
Durch einen 32-Bit Lesezugriff kann der Zählwert ausgelesen werden. Ein 8- oder 16-Bit Lesezugriff ist zwar möglich
jedoch nicht sinnvoll, da es zur Inkonsistenz der gelesenen Zählwerte führen kann.
Hinweis zur Eingangsfrequenz:
Die max. Eingangsfrequenz für den F-CLK beträgt ¼ des APB-Clocks. Bei Quarzausfall am ERTEC 200 stellt sich an der
PLL eine minimale Ausgangsfrequenz zwischen 40 –90 MHz ein. Daraus ergibt sich eine minimale APB-CLK Frequenz
von PLLOUTmin 40MHz / 6 = 6,6666 MHZ. Um Fehlfunktion in der Flankenauswertung auszuschließen darf der F-CLK
maximal APB-CLKmin 6,66MHz/4 = 1,6666 MHz betragen.
Im folgenden Bild sind die Funktionsblöcke des F-Counter dargestellt.
CONFIG(4:3)
BYP_CLK
DIRECT_IN
CLK APB
Sync Stage:
3 stages +
edge detect+
enable
CLK_APB
F-COUNTER-EN
32-Bit Down-Counter
EN
Reset
FCOUNT_RES
Write: F-Counter-Res
Data = 0xXXXX 55AAh
F_CLK
Read: F-Counter-Val
F-Counter-Val(31:0)
APB-Bus
Abbildung 5: Blockschaltbild des F-Counter
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
42
ERTEC 200 Handbuch
Version 1.1.0
4.4.1
Adressbelegung F-Timer-Register
Die F-Timer-Register sind 32-Bit breit. Die Register dürfen nur 32-Bit-breit beschrieben werden.
F-Counter
Register-Name
(Basisadresse 0x4000_2700)
Zugriff
Default
Beschreibung
F-COUNTER-VAL
Offsetadresse Adressbereich
0x0000
4 Byte
R
0x00000000
F-Counter-Wert-Register
F-COUNTER-RES
0x0004
4 Byte
W
0x00000000
Resetregister für F-Counter
Tabelle 11: Übersicht F-Timer-Register
4.4.2
F-Timer-Register Beschreibung
F-COUNTER-VAL
Beschreibung
Bit-Nr
31:0
Name
F-CNT-VAL[31:0]
F-COUNTER-RES
Beschreibung
Bit-Nr
31:16
15:0
R
Addr.: 0x4000_2700
Default: 0x0000_0000
Timerwert des F-Counters
Beschreibung
Timerwert des F-Timers
W
Addr.: 0x4000_2704
Default: 0x0000_0000
Resetregister für F-Counters. Ein Reset des F-Counters wird nur durchgeführt, wenn
in dieses Register ein Datum 0xXXXX 55AAh eingetragen wird. Resets sind also
durch 16-Bit- und 32-Bit- Zugriffe möglich.
Name
F-CNT-RES[31:16]
F-CNT-RES[15:0]
Beschreibung
Oberes Wort des F-Counter-Reset (don’t care)
Unteres Wort des F-Counter-Reset
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
43
ERTEC 200 Handbuch
Version 1.1.0
4.5
Watchdog-Timer
Im ERTEC 200 sind zwei Watchdog-Timer integriert. Die Watchdog-Timer sind für selbstständigen Überwachung von
Prozessen vorgesehen. Der Arbeitstakt ist genauso wie der Prozessortakt von der PLL abgeleitet und beträgt 50 MHz.
4.5.1
Watchdog-Timer 0
Der Watchdog-Timer 0 ist ein 32-Bit breiter Abwärtszähler, dem der Ausgangs WDOUT0_N zugeordnet ist. Dieser
Ausgang kann am Pin GPIO[15] als alternative Funktion verwendet werden (siehe GPIO- und Signalbeschreibung). Der
Timer ist nach Reset gesperrt. Gestartet wird er durch Setzen des Bits „Run/XStop_Z0“ im Watchdog-Register
„CTRL/STATUS“.
Es ist eine maximale Überwachungszeit von 85,89 s (bei Auflösung 20ns) parametrierbar.
4.5.2
Watchdog-Timer 1
Der Watchdog-Timer 1 ist ein 36-Bit breiter Abwärtszähler, bei dem aber nur die oberen 32 Bit programmiert werden
können. Dem Watchdog-Timer1 ist der Ausgang WDOUT1_N zugeordnet. Dieser Ausgang ist nicht nach extern rangiert
sondern löst intern einen Hardwarereset aus. Der Timer ist nach Reset gesperrt. Gestartet wird er durch Setzen des Bits
„Run/XStop_Z1“ im Watchdog-Register „CTRL/STATUS“.
Es ist eine maximale Überwachungszeit von 1374,3 s (bei Auflösung 320ns) parametrierbar.
Ein Setzen des Bits „LOAD“ im Watchdog-Register „CTRL/STATUS“ bewirkt, das beide Watchdog-Timer mit den
entsprechenden Reload-Werten ihrer Reload-Register nachgeladen werden. Beim Watchdog-Timer 1 werden die Bits
[35:4] mit dem Reload-Wert geladen. Die Bits 3:0 werden auf 0 gesetzt.
Die Zählwerte der Watchdog-Timer sind auch lesbar. Beim Lesen von Watchdog-Timer 1 werden die Bits [35:4]
ausgelesen. Der Status beider Watchdog-Timers kann im Register „CTRL/STATUS“ ausgelesen werden.
4.5.3
Watchdog-Interrupt
Der Interrupt WDINT des Watchdog ist auf den FIQ-Interrupt-Controller rangiert. Der Interrupt FIQ0 wird nur dann aktiv
(High), wenn der Watchdog Timer0 im „RUN-Modus“ ist und der Watchdog Timer0 den Wert Null erreicht hat. Die
Ausnahme ist ein Laden mit dem Reload-Wert = 0.
4.5.4
WDOUT0_N
Wert ist ungleich 0, dann wechselt der Ausgang auf High. Der Ausgang wird erst wieder Low, wenn der Zählerstand den
Wert Null erreicht hat. Der Ausgang kann auch zurückgesetzt werden, indem man den Watchdog-Timer0 stoppt und
danach wieder startet.
Das Signal kann am GPIO[15] Port als externes Ausgangssignal verwendet werden, wenn die alternative Funktion für
diesen Pin parametriert wird. Der Ausgang kann somit einem externen Host über ein bevorstehendes Watchdogereignis
informieren.
4.5.5
WDOUT1_N
Das Signal WDOUT_N ist nach Reset oder wenn der Watchdog-Timer1 im Stop ist auf High. Wird der Watchdog-Timer 1
gestartet, dann wird der WDOUT1_N Low, wenn der Timer den Wert Null erreicht. Er bleibt solange Low bis der
Watchdog1-Timer durch Setzen des Bits „LOAD“ neu mit dem Reload-Wert geladen wird. Als Ausnahme gilt, wenn der
Reload-Wert Null geladen wird. Mit dem WDOUT1_N wird intern ein Hardware-Reset ausgelöst.
Folgende Darstellung zeigt den zeitlichen Verlauf des Watchdog-Interrups und der beiden Watchdog-Signale:
X R E SE T
R u n /X St op _Z 1
(intern)
R u n /X St op _Z 0
//
//
//
//
//
//
(intern)
XW D OU T 0
//
//
//
WDINT
(intern)
XW DOU T1
//
//
//
Z aeh l er 0= 0
T r i gger n
L oesch en v on X W D O U T 0
d u r ch R u n /X St op _Z 0 -> 0-> 1
Z aeh l er 1= 0
Abbildung 6: Watchdog-Timing
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
44
ERTEC 200 Handbuch
Version 1.1.0
4.5.6
Watchdog-Register
Die Watchdog-Register sind 32-Bit breit. Ein Lesen oder Beschreiben der Watchdog -Register ist nur in 32-Bit-Zugriff
sinnvoll. Ein Byteweises beschreiben wird aber hardwaremäßig nicht abgefangen.
Um ein versehentliches Beschreiben der Watchdogregister zu verhindern,z.B. bei undefinierten Rechnerabsturz, sind die
beschreibbaren Watchdog-Register mit einem Schreibsschutz versehen. Die oberen 16 Bits der Register sind
sogenannte Schlüsselbits. Um einen gültigen Wert in die unteren 16 Bits zu schreiben müssen die Schlüsselbits auf den
Wert 0x 9876 yyyy (yyyy ist der zu schreibende 16-Bit-Wert) gesetzt werden.
4.5.7
Adressbelegung Watchdog-Register
Watchdog
Register-Name
(Basisadresse 0x4000_2100)
Offsetadresse Adressbereich
Zugriff
Default
Beschreibung
CTRL/STATUS
0x0000
4 Byte
R/W
0x00000000
Control/Status-Register WD
RELD0_LOW
0x0004
4 Byte
R/W
0x0000FFFF
Reload-Register0_Low Bit 0-15
RELD0_HIGH
0x0008
4 Byte
R/W
0x0000FFFF
Reload-Register0_High Bit 16-31
RELD1_LOW
0x000C
4 Byte
R/W
0x0000FFFF
Reload-Register1_Low Bit 4-19
RELD1_HIGH
0x0010
4 Byte
R/W
0x0000FFFF
Reload-Register1_High Bit 20-35
WDOG0
0x0014
4 Byte
R
0xFFFFFFFF
Watchdog-Timer 0-Wert Register
WDOG1
0x0018
4 Byte
R
0xFFFFFFFF
Watchdog-Timer 1-Wert Register
Tabelle 12: Übersicht WD-Register
4.5.8
Watchdog-Register Beschreibung
CTRL/STATUS
Beschreibung
Addr.: 0x4000_2100
Default: 0x0000_0000
Control/Status Register. Konfiguration und Control Bits für den Watchdog.
Bit.-Nr
0
Name
Run/xStop_Z0
1
Run/xStop_Z1
2
Load(Trigger)
3
Status_Zähler 0
4
Status_Zähler 1
15-5
31-16
R/W
Reserviert
Schlüsselbits
Beschreibung
Watchdog-Zähler 0 freigeben/sperren:
0: Watchdog-Zähler 0 gesperrt
1: Watchdog-Zähler 0 freigegeben
Anmerkung: Ist dieses Bit=0, ist der WDOUT0_N -Ausgang des ERTEC 200
aktiv (0), der Interrupt des Watchdogs (WDINT) ist „0“ und das Status-Bit
des Zählers 0 (Bit 3) ist „0“.
Watchdog-Zähler 1 freigeben/sperren:
0: Watchdog-Zähler 1 gesperrt
1: Watchdog-Zähler 1 freigegeben
Anmerkung: Ist dieses Bit=0, ist der WDOUT1_N -Ausgang des ERTEC 200
passiv (1) und das Status-Bit des Zählers 1 (Bit 4) ist „0“.
Watchdog-Trigger (Laden der Watchdog-Zähler 0 und 1 mit dem Wert der
Reload-Register):
0: Watchdog nicht triggern
1: Watchdog triggern
Dieses Bit ist zwar rücklesbar, wirkt sich aber nur während des
Schreibzeitpunktes aus.
Für das Triggern der Watchdog Zähler reicht das Schreiben einer 1 auf
dieses Bit; es wird keine 0/1 Flanke benötigt.
Das Trigger Signal wirkt auf beide Watchdog-Zähler.
Watchdog-Status Zähler 0 (Schreiben wird ignoriert):
0: Watchdog-Zähler 0 ist nicht abgelaufen
1: Watchdog-Zähler 0 ist abgelaufen
Anmerkung: Dieses Bit kann nur dann als ‚1‘ gelesen werden, wenn
RUN/xStop_Z0 aktiv (1) ist.
Watchdog-Status Zähler 1 (Schreiben wird ignoriert):
0: Watchdog-Zähler 1 ist nicht abgelaufen
1: Watchdog-Zähler 1 ist abgelaufen
Anmerkung: Dieses Bit kann nur dann als ‚1‘ gelesen werden,wenn
Run/xStop_Z1 aktiv (1) ist.
Keine Bedeutung (read=0)
Schlüsselbits für das Schreiben dieses Registers (read=0).
Sind die Bits 31-16=9876h, ist das Schreiben der Bits 0-4 dieses Registers
wirksam, sonst unwirksam.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
45
ERTEC 200 Handbuch
Version 1.1.0
RELD0_LOW
Beschreibung
Bit.-Nr
15-0
31-16
R/W
Name
Reload0 [15:0]
Schlüsselbits
RELD0_HIGH
Beschreibung
Bit.-Nr
15-0
31-16
R/W
Bit.-Nr
31-0
Name
Reload1 [19:4]
Schlüsselbits
Bit.-Nr
31-0
Addr.: 0x4000_210C
Default: 0x0000_FFFF
Beschreibung
Reload_Wert für die Bits 19:4 von Watchdog-Zähler 1
Schlüsselbits für das Schreiben dieses Registers (read=0).
Sind die Bits 31-16=9876h, ist das Schreiben der Bits 0-15 dieses
Registers wirksam, sonst unwirksam.
R/W
Addr.: 0x4000_2110
Default: 0x0000_FFFF
Reload Register 1_high. Reload-Wert für die Bits 35:20 von Watchdog-Zähler 1.
Name
Reload1 [35:20]
Schlüsselbits
Beschreibung
Reload_Wert für die Bits 35-20 von Watchdog-Zähler 1
Schlüsselbits für das Schreiben dieses Registers (read=0).
Sind die Bits 31-16=9876h, ist das Schreiben der Bits 0-15 dieses
Registers wirksam, sonst unwirksam.
R
Addr.: 0x4000_2114
Default: 0xFFFF_FFFF
Watchdog-Wert 0. Wert des Watchdog-Zählers 0.
Name
WDOG0[31:0]
WDOG1
Beschreibung
Default: 0x0000_FFFF
Beschreibung
Reload_Wert für die Bits 31-16 von Watchdog-Zähler 0
Schlüsselbits für das Schreiben dieses Registers (read=0).
Sind die Bits 31-16=9876h, ist das Schreiben der Bits 0-15 dieses
Registers wirksam, sonst unwirksam.
R/W
WDOG0
Beschreibung
Addr.: 0x4000_2108
Reload Register 1_low. Reload-Wert für die Bits 19:4 von Watchdog-Zähler 1.
RELD1_HIGH
Bit.-Nr
15-0
31-16
Beschreibung
Reload_Wert für die Bits 15:0 von Watchdog-Zähler 0
Schlüsselbits für das Schreiben dieses Registers (read=0).
Sind die Bits 31-16=9876h, ist das Schreiben der Bits 0-15 dieses
Registers wirksam, sonst unwirksam.
Name
Reload0 [31:16]
Schlüsselbits
Beschreibung
Beschreibung
Default: 0x0000_FFFF
Reload Register 0_high. Reload-Wert für die Bits 31:16 von Watchdog-Zähler 0.
RELD1_LOW
Bit.-Nr
15-0
31-16
Addr.: 0x4000_2104
Reload Register 0_low. Reload-Wert für die Bits 15:0 von Watchdog-Zähler 0.
Beschreibung
Bit [31:0] des Watchdog-Zählers 0.
R
Addr.: 0x4000_2118
Default: 0xFFFF_FFFF
Watchdog-Wert 1. Wert des Watchdog-Zählers 1.
Name
WDOG1[36:4]
Beschreibung
Bit [36:4] des Watchdog-Zählers 1.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
46
ERTEC 200 Handbuch
Version 1.1.0
4.6
UART-Schnittstelle
Im ERTEC 200 ist ein UART implementiert. Die Eingänge und Ausgänge der UART’s stehen als alternative Funktion am
GPIO-Port [12 : 8] zur Verfügung. Dazu müssen die IO’s auf die entsprechenden Ein- bzw. Ausgänge und die alternative
Funktion parametriert werden (siehe Registerbeschreibung GPIO). Wenn der UART verwendet wird, stehen die Pins
nicht mehr als normale IO’s zur Verfügung. Die Datenbitbreite für Lesen/Schreiben am APB-Bus ist 8-Bit.
Folgende Signalpins stehen für den UART am ERTEC 200 zur Verfügung:
•
•
•
Sendeleitung
Empfangsleitung
Steuerleitung
1
1
3
TXD
RXD
DCD_N
CTS_N
DSR_N
Der UART sind als ARM Prime CellTM (PL010) Macros realisiert. Dieser ist ähnlich dem Standard-UART 16C550. Die
genaue Beschreibung ist in Dokument /5/ nachzulesen.
In der folgenden Abbildung ist der Aufbau des UART dargestellt.
Abbildung 7: Blockschaltbild UART
Folgende Abweichungen zum Standard-UART 16C550:
•
Receive-FIFO-Trigger-Level ist fest auf 8 Bytes eingestellt.
•
Receive Errors werden im FIFO gespeichert
•
Receive Errors erzeugen keinen Interrupt
•
Das interne Register-Adress-Mapping und die Register-Bit-Funktionen sind unterschiedlich
Folgende Standard-UART 16C550 Merkmale werden nicht unterstützt:
•
1,5 Stop-Bits .
•
„Forcing-Stick-Parity“ Funktion
Der UART hat eine Interruptquelle:
•
UARTINTR
UART - Sammelinterrupt
Der Interrupts steht am IRQ-Interrupt-Controller des ARM946E-S zur Verfügung.
Der UART kann vom AEM946-Prozessor oder vom DMA-Kontroller gesteuert werden. Im DMA-Mode muß das FIFO
abgeschaltet werden, weil das FIFO nicht den Füllstand anzegt. Da der DMA-Kontroller nur einkanalig ist, kann entweder
nur Send- oder Receivesteuerung durch den DMA-Kontroller erfolgen. Die Steuerung des anderen Kanal muß dann per
Software durchgeführt werden.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
47
ERTEC 200 Handbuch
Version 1.1.0
Die Baud-Raten-Generierung wird vom internen APB-Takt 50 MHz abgeleitet. Die daraus resultierenden Abweichungen
zu den verwendeten Norm-Baudraten sind so gering, daß eine sichere Datenübertragung erreicht wird.
Die Baud-Rate wird nach folgender Formel berechnet:
FUARTCLK
FUARTCLK
BR = ----------------------------(BAUDDIV+1) x 16
bzw.
BAUDDIV = (-----------------------------) - 1
BR x 16
Daraus ergibt sich folgende Fehlertoleranzberechnung:
(BR –BRI)
wobei BRI die ideale Baud-Rate ist.
Ep = ----------------- x 100%
BRI
Aus der nachfolgenden Tabelle sind die zu den Baudraten einzustellenden Baudraten-Werte und die Abweichungen
von den Norm-Baudraten aufgelistet. Dabei liegen die prozentuallen Fehler innerhalb des Baud-Rate-Toleranzbereiches.
BRI
115200
76800
57600
38400
19200
14400
9600
2400
1200
110
BAUDDIV
26
40
53
80
162
216
325
1301
2603
28408
BR
115740
76219
57870
38580
19171
14400.9
9585.9
2400.15
1200.077
110.0004
EP %
+0,47
-0,76
+0,47
+0,47
-0,15
+0,006
-0,15
+0,006
+0,006
+0.0003
Tabelle 13: Baudraten UART bei FUARTCLK=50 MHz
Der UART kann auch als BOOT-Medium verwendet werden, wenn z.B. Funktionen von einem externen PC in den
ERTEC 200 geladen und ausgeführt werden sollen. Die Selektion des BOOT-Mediums erfolgt durch die Eingänge
BOOT[3:0] während der aktiven Reset-Phase.
Die Einstellung der UART-Signalpins und das Laden des Programm-Codes wird dann vom BOOT-Lader übernommen.
Es wird dabei die „Boot-Strap-Loader“ Funktionalität eingesetzt.
Wird der UART anwenderseitig nicht genutzt, so kann er auch als Debugschnittstelle benutzt werden.
4.6.1
Adressbelegung UART-Register
Die UART-Register sind 8-Bit breit.
UART (Start 0x4000_2300)
Register-Name
Offsetadresse
Adressbereich
Zugriff
Default
Beschreibung
UARTDR
0x0000
1 Byte
R/W
0x--
Daten lesen/schreiben vom Interface
UARTRSR/UARTECR
0x0004
1 Byte
R/W
0x00
Receive Status Register (Read)
Error Clear Register (Write)
UARTLCR_H
0x0008
1 Byte
R/W
0x00
Line Control Register High-Byte
UARTLCR_M
0x000C
1 Byte
R/W
0x00
Line Control Register Middle-Byte
UARTLCR_L
0x0010
1 Byte
R/W
0x00
Line Control Register Low-Byte
UARTCR
0x0014
1 Byte
R/W
0x00
Control Register
UARTFR
0x0018
1 Byte
R
0x9-
Flag Register
UARTIIR/UARTICR
0x001C
1 Byte
R/W
0x00
Int-Identifikation Register (Read)
Interrupt Clear Register (Write)
UARTILPR
0x0020
1 Byte
R/W
0x00
IrDA Low Power Counter Register
(wird im ERTEC400 nicht unterstützt)
0x0024 - 0x003C
Reserviert
0x0040 - 0x0098
Reserved for Test Purposes
0x009C - 0x00FF
Reserved for Future Extension
Tabelle 14: Übersicht UART-Register
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
48
ERTEC 200 Handbuch
Version 1.1.0
4.6.2
UART-Register Beschreibung
UARTDR
Beschreibung
Bit.-Nr
7–0
R/W
Addr.: 0x4000_2300
Default: 0x--
UART Daten Register.
Name
-------
Beschreibung
WRITE:
Wenn FIFO freigegeben ist , werden die geschriebenen Daten in das FIFO
eingetragen.
Wenn FIFO gesperrt ist , werden die geschriebenen Daten in das TransmitHolding-Register eingetragen(das erste Wort im Transmit-FIFO).
READ:
Wenn FIFO freigegeben ist , werden die empfangen Daten in das FIFO
eingetragen.
Wenn FIFO gesperrt ist , werden die empfangenen Daten in das Receive-HoldingRegister eingetragen (das erste Wort im RECEIVE-FIFO).
NOTE: Beim Empfang von Daten muß erst das UARTDR Daten-Register gefolgt vom UARTRSR Fehler-Register
ausgelesen werden.
UARTRSR/UARTECR
Beschreibung
Bit.-Nr
7–0
R/W
Addr.: 0x4000_2304
Default: 0x00
UART Receive Status Register (Read)
UART Receive Error Clear Register (Write)
Name
------- (Write)
Beschreibung
0
FE
(Read)
Framing-Error = 1
1
PE
(Read)
Parity-Error = 1
2
BE
(Read)
Break-Error = 1 Ein Break wurde erkannt. Ein Break bedeutet, das länger als ein
normales Zeichen mit allen Control-Bits die empfangenen Daten auf LOW sind.
3
OE
(Read)
Overrun-Error = 1
Framing-, Parity-, Break- und Overrun-Error werden gelöscht
Empfangenes Zeichen hat kein gültiges Stop-Bit
Parity des Empfangenes Zeichen stimmt nicht überein mit der
parametrierten Parity im Register UARTLCR_H Bit 2
Wenn der FIFO voll ist und es wird ein neues Zeichen
empfangen.
7–4
------- (Read)
Reserviert
Wert ist undefiniert
NOTE: Wenn neue Daten angezeigt werden, muss erst das UARTDR Daten-Register gefolgt vom UARTRSR FehlerRegister ausgelesen werden. Erst mit dem Lesen des Daten-Registers wird das Fehler Register aktualisiert.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
49
ERTEC 200 Handbuch
Version 1.1.0
UARTLCR_H
Beschreibung
Bit.-Nr
0
R/W
Addr.: 0x4000_2308
Default: 0x00
UART Line Control Register High-Byte Bit-Rate und Control Register Bit 22 - 16
Name
BRK
Beschreibung
1
PEN
Parity-Enable = 1
2
EPS
3
STP2
4
FEN
Wenn PEN = 1
Even-Parity-Select = 1 Even-Parity (1) bei Prüfung und Generierung.
Even-Parity-Select = 0 Odd-Parity (0) bei Prüfung und Generierung.
Two Stop Bit Select = 1 Am Ende des Frames werden beim Senden 2
Stop-Bits angefügt.
Two Stop Bit Select = 0 Am Ende des Frames wird beim Senden 1 Stop-Bit
angefügt.
FIFO-Enable = 1 FIFO-Mode für Senden/Empfangen sind freigegeben.
FIFO-Enable = 0 FIFO ist gesperrt. Senden/Empfang wird dann über 1Byte Holding Register durchgeführt.
Word-Length gibt die Anzahl der Datenbits innerhalb eines Frames an.
6–5
WLEN
Send-Break = 1 Ein LOW-Level wird kontinuierlich am Transmit-Ausgang
gesendet.
00
01
10
11
7
-------
UARTLCR_M
Beschreibung
Bit.-Nr
7–0
Bit.-Nr
7–0
5-Bit Data
6-Bit Data
7-Bit Data
8-Bit Data
Reserviert
Wert ist undefiniert
R/W
Addr.: 0x4000_230C
Default: 0x00
UART Line Control Register Middle-Byte Baud-Rate High-Byte Bit 15 - 8
Name
BAUD DIVMS
UARTLCR_L
Beschreibung
Parity-Überprüfung und – Generierung sind freigegeben.
Beschreibung
Baud-Rate-Divisor High-Byte
R/W
Addr.: 0x4000_2310
Default: 0x00
UART Line Control Register Low-Byte Baud-Rate Low-Byte Bit 7 - 0
Name
BAUD DIVLS
Beschreibung
Baud-Rate-Divisor Low-Byte
NOTE: Der Baud-Rate-Devisor wird bestimmt nach folgender Formel:
FUARTCLK
BAUDDIV = ------------------------- - 1
16 * Baud-Rate
Null als Devisor ist nicht gültig.
UARTLCR besteht aus 3 Byte. Das schreiben der Bytes ist abgeschlossen, wenn UARTLCR_H beschrieben wurde. Soll
eines der ersten beiden Bytes verändert werd, so muss nach der Änderung am Schluss UARTLCR_H beschrieben
werden.
Beispiel: UARTLCR_L und/oder UARTLCR_M schreiben, UARTLCR_H schreiben als Übernahme.
Nur UARTLCR_H schreiben bedeutet Bits UARTLCR_H schreiben und übernehmen.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
50
ERTEC 200 Handbuch
Version 1.1.0
UARTCR
Beschreibung
Bit.-Nr
0
R/W
Addr.: 0x4000_2314
Default: 0x00
UART Control Register
Name
UARTEN
Beschreibung
UART Enable = 1 UART Senden/Empfangen von Daten ist möglich
1
SIREN
2
SIRLP
SIR Enable = 1 IrDA SIR Endec ist freigegeben. Das Bit kann nur dann
verändern werden, wenn UARTEN = 1
IrDA SIR Low Power Mode
3
MSIE
Modem Status Interrupt Enable = 1
4
RIE
Receive Interrupt Enable = 1
Receive-Interrupt ist freigegeben
5
TIE
Transmit Interrupt Enable = 1
Transmit-Interrupt ist freigegeben
6
RTIE
7
LBE
Receive Timout Interrupt Enable = 1
freigegeben
Loop Back Enable
UARTFR
Beschreibung
Bit.-Nr
0
R
Interrupt ist freigegeben
Receive-Timout-Interrupt ist
Addr.: 0x4000_2318
Default: 0x9-
UART Flag Register
Name
CTS
Beschreibung
Clear To Send Dieses Bit ist das inverse Signal des UART-Eingangs CTS.
1
DSR
Data Set Ready Dieses Bit ist das inverse Signal des UART-Eingangs DSR.
2
DCD
3
BUSY
Data Carrier Detect Dieses Bit ist das inverse Signal des UART-Eingangs
DCD.
UART Busy Das Bit ist gesetzt, wenn Sendedaten in Arbeit sind oder wenn
der Transmit-FIFO nicht leer ist.
4
RXFE
5
TXFF
6
RXFF
7
TXFE
Receive FIFO Empty = 1 wenn
ƒ
FIFO ist gesperrt und Receive Holding Register ist leer
ƒ
FIFO ist freigegeben und Receive-FIFO-Buffer ist leer.
Transmit FIFO Full = 1 wenn
ƒ
FIFO ist gesperrt und Transmit Holding Register ist voll
ƒ
FIFO ist freigegeben und Transmit-FIFO-Buffer ist voll.
Receive FIFO Full = 1 wenn
ƒ
FIFO ist gesperrt und Receive Holding Register ist voll.
ƒ
FIFO ist freigegeben und Receive-FIFO-Buffer ist voll.
Transmit FIFO Empty = 1 wenn
ƒ
FIFO ist gesperrt und Transmit Holding Register ist leer
ƒ
FIFO ist freigegeben und Transmit-FIFO-Buffer ist leer.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
51
ERTEC 200 Handbuch
Version 1.1.0
UARTIIR/UARTICR
Beschreibung
Bit.-Nr
0
R/W
Addr.: 0x4000_231C
Default: 0x00
UART Interrupt Identification Register (Read)
UART Interrupt Clear Register (Write)
Name
MIS
(Read)
Beschreibung
1
RIS
(Read)
Receive Interrupt Status Dieses Bit ist gesetzt, wenn UARTRXINTR aktiv ist.
2
TIS
(Read)
3
RTIS
(Read)
Transmit Interrupt Status Dieses Bit ist gesetzt, wenn UARTTXINTR aktiv
ist.
Receive Timout Interrupt Status Dieses Bit ist gesetzt, wenn UARTRTINTR
aktiv ist.
7–4
-----
(Read)
7–0
-----
(Write)
UARTILPR
Beschreibung
Modem Interrupt Status Dieses Bit ist gesetzt, wenn UARTMSINTR aktiv
ist.
Reserviert
Wert ist undefiniert
Ein Beschreiben dieses Register löscht das Bit MIS unabhängig vom Wert
der geschrieben wird.
R/W
Addr.: 0x4000_2320
Default: 0x00
UART IrDA Low Power Counter Register
(wird im ERTEC400 nicht unterstützt)
Bit.-Nr
7–0
Name
ILPDVSR
Beschreibung
8-Bit Low-Power Devisor Wert
NOTE: Der Low-Power-Devisor wird bestimmt nach folgender Formel:
FUARTCLK
ILPDVSR = ---------------------- - 1
FIrLPBAUD16
FIrLPBAUD16 ist nominal 1,8432 MHz
Null als Devisor ist nicht gültig.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
52
ERTEC 200 Handbuch
Version 1.1.0
4.7
Synchrones Interface SPI
Im ERTEC 200 ist ein SPI-Interface implementiert. Die Eingänge und Ausgänge des SPI-Interface stehen als alternative
Funktion am GPIO-Port [23:16] zur Verfügung. Dazu müssen die IO’s auf die entsprechenden Ein- bzw. Ausgänge und
die alternative Funktion parametriert werden (siehe Registerbeschreibung GPIO). Wenn das SPI Interface verwendet
wird, stehen die Pins nicht mehr als normale GPIO’s zur Verfügung. Die Grundfrequenz für die interne Bit-RatenGenerierung ist der APB-Takt mit 50 MHz. Die Datenbitbreite für Lesen/Schreiben ist 16-Bit.
Folgende Signalpins stehen für das SPI-Interface am ERTEC 200 zur Verfügung:
•
•
•
•
•
Sendeleitung
Empfangsleitung
Taktleitung
Enables
SFR’s
1
1
2
2
2
SSPTXD
SSPRXD
SCLKIN/ SCLKOUT
SSPCTLOE/SSPOE
SFRMIN/SFRMOUT
Das SPI-Interface ist als ARM Prime CellTM (PL021) Macros realisiert. Die genaue Beschreibung ist in Dokument /6/
nachzulesen. In der folgenden Abbildung ist der Aufbau des SPI-Macro dargestellt:
Abbildung 8: Blockschaltbild SPI
Das SPI-Interface untertstützt folgende Modi:
•
•
•
Motorola SPI- kompatibler Mode
Texas Instruments Synchrones Serielles Interface
National Semiconductor Microwire Interface
Das SPI-Interface besitzt folgende Merkmale:
•
•
•
Separate Sende- und Empfangs-FIFO für 8 Einträgen mit 16-Bit Datenbreite
Daten-Frame-Größe parametrierbar von 4 – 16 Bit
Parametrierbare Bit-Rate von
769 Hz bis 25 MHz im Masterbetrieb
max. 4,16 MHz im Slavebetrieb
Das SPI Interface hat folgende Interruptquellen:
•
SSPINTR
Sammelinterrupt
•
SSPRORINTR
Overrun-Error-Interrupt
Beide Interrupts stehen am IRQ-Interrupt-Controller des ARM946E-S zur Verfügung.
Das SPI-Modul kann vom ARM946 oder vom internen DMA-Controller betrieben werden.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
53
ERTEC 200 Handbuch
Version 1.1.0
Für den synchronen Taktausgang des SPI-Interfaces errechnen sich folgende Frequenzen in Abhängigkeit von den
parametrierten SPI-Registern:
50 MHz
SCLKOUT = ----------------------------CPSDRV * (1+SCR)
Die SPI-Parameter können folgende Werte annehmen:
CPSDRV
SCR
von 2 – 254
von 0 – 255
Daraus ergibt sich ein Frequenzbereich von
•
•
769 Hz
25MHz[Master]/8,33MHz[Slave]
(CPSDRV = 254, SCR = 255) bis
(CPSDRV = 2, SCR = 0)
Zusätzlich kann das SPI-Interface auch als BOOT-Medium verwendet werden, wenn z.B. Funktionen von einem seriellen
EEPROM in den ERTEC 200 geladen und ausgeführt werden sollen. Die Selektion des BOOT-Medium erfolgt durch die
Eingänge BOOT[3:0] während der aktiven Reset-Phase. (Siehe Beschreibung BOOT-ROM).
Die Einstellung der SPI-Signalpins und das Laden des Programm-Codes werden dann vom BOOT-Lader übernommen.
Für den BOOT-Modus mit SPI-Interface wird der GPIO[22] als Chip Select-Signal verwendet.
4.7.1
Adressbelegung SPI-Register
Die SPI-Register sind 16-Bit breit. Ein Lesen oder Beschreiben der SPI -Register ist nur in 16-Bit-Zugriff sinnvoll. Ein
Byteweises beschreiben wird aber hardwaremäßig nicht abgefangen.
SPI
Register-Name
SSPCR0
(Basisadresse 0x4000_2200)
Offsetadresse Adressbereich
0x0000
Zugriff
Default
Beschreibung
R/W
0x0000
SSP Control Register 0
2 Byte
SSPCR1
0x0004
1 Byte
R/W
0x00
SSP Control Register 1
SSPDR
0x0008
2 Byte
R/W
0x----
Rx/Tx-FIFO Daten Register
SSPSR
0x000C
1 Byte
R
0x03
SSP Status Register
SSPCPSR
0x0010
1 Byte
R/W
0x00
SSPIIR/SSPICR
0x0014
1 Byte
R/W
0x00
SSP Clock Prescale Register
Int-Identifikation Register (Read),
Interrupt Clear Register (Write)
Reserved
0x0018 - 0x003C
0x0040 - 0x0090
Reserved for Test Purposes
0x0094 - 0x00FF
Reserved for Future Extension
Tabelle 15: Übersicht SPI-Register
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
54
ERTEC 200 Handbuch
Version 1.1.0
4.7.2
SPI-Register Beschreibung
SSPCR0
R/W
Beschreibung
Bit.-Nr
3-0
5-4
6
7
15-8
Addr.: 0x4000_2200
Default: 0x0000
Control Register 0. Konfiguration Frame-Format und Baud-Rate für SPI.
Name
DSS
Data Size Select
Beschreibung
0000
0001
0010
0011
0100
0101
0110
0111
Reserviert (undefined)
Reserviert (undefined)
Reserviert (undefined)
4-Bit Data
5-Bit Data
6-Bit Data
7-Bit Data
8-Bit Data
1000
1001
1010
1011
1100
1101
1110
1111
9-Bit Data
10-Bit Data
11-Bit Data
12-Bit Data
13-Bit Data
14-Bit Data
15-Bit Data
16-Bit Data
00
01
FRF
Frame Format
SPO
Serial Clock Output
Polarity
Motorola SPI Frame Format
TI Synchronous Serial Frame Format
02
National Microwire Frame Format
03
Reserviert (undefined operation)
Nur anwendbar im Motorola SPI Frame Format.
0 Empfangene Bits werden mit der steigenden Flanke von SCLKIN/OUT eingerastet.
Gesendete Bits werden mit der fallenden Flanke von SCLKIN/OUT geschaltet
1 Empfangene Bits werden mit der fallenden Flanke von SCLKIN/OUT eingerastet.
Gesendete Bits werden mit der steigenden Flanke von SCLKIN/OUT geschaltet.
SPH
Phase of
Transmition Bit
Nur Anwendbar im Motorola SPI Frame Format.
SCR
Serial Clock Rate
Die Serial-Clock-Rate wird zur Berechnung der Transmit/Receive-Bit-Rate
hergenommen. Folgende Berechnungsformel:
0 empfangenes MSB wird, nachdem Frame-Signal auf Low gegangen ist, erwartet
1 empfangenes MSB wird, eine ½ Clockperiode nachdem Frame-Signal auf Low
gegangen ist, erwartet.
FSSPCLK
---------------------------------------CPSDVSR x (1 + SCR)
SCR := 1 … 255
CPSDVSR := 2 … 254 (Beschreibung siehe SSPCPSR-Register)
SSPCR1
R/W
Beschreibung
Bit.-Nr
0
Addr.: 0x4000_2204
Default: 0x0000
Control Register 1. Konfiguration Frame-Format und Baud-Rate für SPI.
Name
RIE
Beschreibung
Receive FIFO Interrupt Enable:
0 = Receive FIFO Half Full or More Interrupt SSPRXINTR ist gesperrt
1 = Receive FIFO Half Full or More Interrupt SSPRXINTR ist freigegeben
1
TIE
Transmit FIFO Interrupt Enable:
0 = Transmit FIFO Half Full or Less Interrupt SSPTXINTR ist gesperrt
1 = Transmit FIFO Half Full or Less Interrupt SSPTXINTR ist freigegeben
2
RORIE
Receive FIFO Overrun Interrupt Enable:
0 = FIFO Overrun Anzeige Interrupt SSPRORINTR ist gesperrt
( Ein Löschen dieses Bits löscht auch den Interrupt SSPRORINTR wenn dieser gerade
aktiviert wurde)
1 = FIFO Overrun Anzeige Interrupt SSPRORINTR ist freigegeben
3
LBM
Loop – Back – Mode
0 = Normale Serielle Operation ist aktiv
1 = Loop-Back-Mode ist aktiv. (Intern ist Ausgang des Transmit-Serial-Shifter ist mit
Eingang des Receive- Serial-Shifter verbunden).
4
SSE
Synchronous-Seriell-Port Enable:
0 = SPI-Port ist gesperrt
1 = SPI-Port ist freigegeben
5
MS
Master/Slave Mode Select
(Dieses Bit kann nur gerändert werden wenn Bit4 SSE = 0 ist)
0 = Device ist Master (default)
1 = Device ist Slave
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
55
ERTEC 200 Handbuch
Version 1.1.0
6
SOD
Slave-Mode-Output Disable
(Dieses Bit ist nur im Slave-Mode MS = 1 relevant)
In „Multiple Slave-Systemen“ kann der Master eine Broadcast-Nachricht an alle Slave
im System schicken um sicherzustellen, das nur ein Slave Daten an seinem TransmitAusgang treibt)
0 = SPI darf im Slave-Mode den SSPTXD-Ausgang treiben
1 = SPI darf im Slave-Mode den SSPTXD-Ausgang nicht treiben
15-7
Reserviert
Read: Wert ist undefiniert
Write: Sollte immer mit 0 beschrieben werden
-------
SSPDR
R/W
Addr.: 0x4000_2208
Default: 0x----
Beschreibung
SPI – Daten Register.
Bit.-Nr
Name
Beschreibung
Transmit/Receive FIFO
15-0
DATA (15:0)
Read = Receive FIFO
Write = Transmit FIFO
(Bei Data-Size < 16 Bit muss der Anwender die Daten im richtigen Format in den
Transmit-FIFO schreiben. Beim Lesen werden die Daten schon richtig aus dem
Reveive-FIFO ausgelesen)
SSPSR
R
Addr.: 0x4000_220C
Default: 0x0000
Beschreibung
SPI – Status Register.
Bit.-Nr
Name
Beschreibung
Transmit FIFO Empty
0
TFE
1
TNF
2
RNE
3
RFF
4
BSY
15-5
------------
SSPCPSR
0 = Transmit FIFO ist nicht leer
1 = Transmit FIFO ist leer
Transmit FIFO not Full
0 = Transmit FIFO ist voll
1 = Transmit FIFO ist nicht voll
Receive FIFO not Empty
0 = Receive FIFO ist leer
1 = Receive FIFO ist nicht leer
Receive FIFO Full
0 = Receive FIFO ist nicht voll
1 = Receive FIFO ist voll
SPI Busy Flag
0 = SPI ist
1 = SPI sendet und/oder empfängt einen Frame oder der Transmit – FIFO
ist nicht leer.
Reserviert
Read: Wert ist undefiniert
Write: Sollte immer mit 0 beschrieben werden
R/W
Addr.: 0x4000_2210
Default: 0x0000
Beschreibung
SPI – Clock-Prescale-Register.
Bit.-Nr
Name
Beschreibung
Clock-Prescale Devisor.
7-0
CPSDVSR
15-5
------------
(Wert liegt zwischen 2 – 254. Formel siehe SSPCR0 – Register.)
Beim Lesen des Wertes ist Bit 0 immer Null
Reserviert
Read: Wert ist undefiniert
Write: Sollte immer mit 0 beschrieben werden
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
56
ERTEC 200 Handbuch
Version 1.1.0
SSPIIR/SSPICR
R/W
Addr.: 0x4000_2214
Default: 0x0000
Beschreibung
Bit.-Nr
0
1
2
15-3
15-0
4.8
SPI – Interrupt Identification Register (Read)
SPI – Interrupt Clear Register (Write)
Name
Beschreibung
RIS (Read)
SPI Receive FIFO Service Request Interrupt Status
0 = SSPRXINTR ist nicht aktiv
1 = SSPRXINTR ist aktiv
TIS (Read)
SPI Transmit FIFO Service Request Interrupt Status
0 = SSPTXINTR ist nicht aktiv
1 = SSPTXINTR ist aktiv
SPI Receive FIFO Overrun Interrupt Status
RORIS (Read)
0 = SSPRORINTR ist nicht aktiv
1 = SSPRORINTR ist aktiv
Read: Reserviert Wert ist undefiniert
Write: Receive-Overrun-Interrupt wird gelöscht ohne Rücksicht darauf ob
Daten gerade geschrieben werden.
---------- (Read)
---------- (Write)
System-Control-Register
Die System-Control-Register sind ERTEC 200 spezifische Control-Register, die von den einzelnen AHB-Mastern vom
APB-Bus gelesen und beschrieben werden können. Aufstellung und Adressbelegung aller System-Control-Register und
die genaue Beschreibung siehe folgende Kapiteln.
4.8.1
Adressbelegung System-Control-Register
Die System-Control-Register sind 32-Bit breit.
System-Control-Register (Basisadresse 0x4000_2600)
Register-Name
Offsetadresse
Adressbereich
Zugriff
Default
Beschreibung
ID_REG
0x0000
4 Byte
R
0x40270100
ID ERTEC 200
BOOT_REG
0x0004
4 Byte
R
Boot-Pins
Boot-Mode-Pins Boot[3:0]
SER_CFG_REG
0x0008
4 Byte
R
Config-Pins
RES_CTRL_REG
0x000C
4 Byte
W/R
0x00000004
RES_STAT_REG
0x0010
4 Byte
R
0x00000004
PLL_STAT_REG
0x0014
4 Byte
R/W
0x00070005
Statusregister für PLL/FIQ3
ERTEC 200 Config-Pins
Config[6:1]
Steuerregister für Reset ERTEC
200
Statusregister für Reset ERTEC
200
QVZ_AHB_ADR
0x0028
4 Byte
R
0x00000000
Adresse einer Fehladressierung
am Multi-Layer-AHB
QVZ_AHB_CTRL
0x002C
4 Byte
R
0x00000000
Control-Signale einer Fehladr am
Multi-Layer-AHB
QVZ_AHB_M
0x0030
4 Byte
R
0x00000000
Mastererkennung einer Fehladr.
am Multi-Layer-AHB
QVZ_APB_ADR
0x0034
4 Byte
R
0x00000000
Adresse einer Fehladressierung
am APB
QVZ_EMIF_ADR
0x0038
4 Byte
R
0x00000000 Adr. die zum QVZ am EMIF führt.
MEM_SWAP
0x0044
4 Byte
R/W
0x00000000
Memory Swapping in Segment 0
auf dem AHB-Bus
M_LOCK_CTRL
0x004C
4 Byte
R/W
0x00000000
AHB-Master-Lock-Enable.
Masterselektive Freigeabe der
AHB-Lock-Funktionalität
ARM9_CTRL
0x0050
4 Byte
R/W
0x00001939
Controlle von ARM9- und ETMInputs
ARM9_WE
0x0054
4 Byte
R/W
0x00000000
Schreibschutzregister für
ARM9_CTRL
ERTEC 200_TAG
0x0058
4 Byte
R
0x000101xx
TAG-Nummer des aktuellen
Schaltzustandes
PHY_CONFIG
0x005C
4 Byte
R/W
0x00000000
PHY1/PHY2
Konfigurationsregister
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
57
ERTEC 200 Handbuch
Version 1.1.0
PHY_STATUS
0x0060
4 Byte
R
0x00000000
PHY1/PHY2
Statusregister
UART_CLK
0x0070
4 Byte
R/W
0x00000000
UART-Clock Auswahl
50MHz/6MHz
Tabelle 16: Übersicht System-Control-Register
4.8.2
System-Control-Register Beschreibung
ID_REG
R
Beschreibung
Bit-Nr
31..16
15..8
7..0
Name
ERTEC200-ID
HW-RELEASE
METALL-FIX
BOOT_REG
Beschreibung
Bit-Nr
31..4
3 .. 0
Bit-Nr
31..7
6 .. 1
0
Default: 0x4027_0100
Beschreibung
ERTEC 200-Kennung: 4027h
HW-Release: 01h
Metall-Fix: 00h
R
Addr.: 0x4000_2604
Default: Bootpins[3:0]
Boot-Mode-Pins BOOT(3:0) lesbar.
Name
Reserviert
BOOT[3:0]
CONFIG_REG
Beschreibung
Addr.: 0x4000_2600
Identifikation ERTEC 200.
Beschreibung
Reserviert
Lesen von Boot[3:0] Pin
R
Addr.: 0x4000_2608
Default:Configpins[6:1]
ERTEC 200-Config-Pins CONFIG(6:1) lesbar.
Name
Reserviert
CONFIG[6:1]
Reserviert
Beschreibung
Reserviert
Lesen von CONFIG[6:1] Pin
Reserviert
RES_CTRL_REG
Beschreibung
W/R
Addr.: 0x4000_260C
Steuerregister für Reset des ERTEC 200.
Bit-Nr
31..13
Name
Reserviert
Beschreibung
Reserviert
12:3
PULSE_DUR
Puls-Dauer des SW- oder Watchdog-Resets.
TRES_PULSE = (8 x n + 8) x TCLK;
TCLK:
APB-Takt-Periode (1/50MHz = 20 ns)
n:
Wert von PULSE_DUR (0 .. 1023)
2
EN_WD_SOFT_
RES_IRTE
1
0
XRES_SOFT
WD_RES_FREI
Default: 0x0000_0004
Die integrierten PHYs benötigen eine Resetdauer von > 100µs. Damit muss
n > 625 eingestellt werden!
0: Der IRTE-Switch-Controller wird beim Watchdog- / Soft-Reset nicht
zurückgesetzt.
1: Der IRTE-Switch-Controller wird beim Watchdog- / Soft-Reset
zurückgesetzt.
1: Software Reset (nicht speichernd)
1: Freigabe Watchdog Reset
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
58
ERTEC 200 Handbuch
Version 1.1.0
RES_ STAT _REG
Beschreibung
Bit-Nr
31..3
2
1
0
PLL_STAT_REG
Beschreibung
Bit-Nr
31..18
17
R
R/W
Name
Reserviert
16
INT_MASK_LOCK
Reserviert
INT_QVZ_EMIF_
STATE
4
3
Reserviert
INT_LOSS_STATE
2
INT_LOCK_STATE
1
PLL_INPUT_CLK_LO
SS
0
PLL_LOCK
QVZ_AHB_ADR
Beschreibung
Bit-Nr
31:0
Default: 0x0000_0004
Addr.: 0x4000_2614
Default: 0x0007_0005
Statusregister für PLL des ERTEC 200 und InterruptControl für FIQ3.
INT_MASK_LOSS
15..6
5
Addr.: 0x4000_2610
Statusregister für Reset des ERTEC 200.
Es ist immer nur das Bit des zuletzt aufgetretenen Reset-Ereignisses gesetzt. Die beiden
anderen Bits sind zurückgesetzt.
Name
Beschreibung
Reserviert
Reserviert
HW_RESET
1: Letzter Reset war PowerOn- oder Hardware – Reset
SW_RESET
1: Letzter Reset war Software-Reset
WD_RESET
1: Letzter Reset war Watchdog-Reset
Beschreibung
Reserviert
INT_MASK_LOSS:
Interrupt-Maskierung für INT_LOSS_STATE
0: Interrupt ist freigegeben
1: Interrupt ist maskiert
schreib-/lesbar
INT_MASK_LOCK:
Interrupt-Maskierung für INT_LOCK_STATE
0: Interrupt ist freigegeben
1: Interrupt ist maskiert
schreib-/lesbar
Reserviert
Interrupt Quittungsverzug am EMIF (INT_QVZ_EMIF_
STATE):
0: Interrupt-Request ist inaktiv
1: Interrupt-Request ist aktiv
nur lesbar;
Dieses Bit stellt den Wert von Bit 7 des EMIF-Registers Extended_Config
dar.
Reserviert
Interrupt Loss-State (INT_LOSS_STATE):
0: Interrupt-Request ist inaktiv
1: Interrupt-Request ist aktiv
Dieses Bit zeigt an, ob der PLL-Input-Clock ausgefallen ist (speichernd).
Schreib-/lesbar
Interrupt Lock-State (INT_LOCK_STATE):
0: Interrupt-Request ist inaktiv
1: Interrupt-Request ist aktiv
Dieses Bit zeigt an, ob die PLL sich im Unlocked-Zustand befunden hat
(speichernd).
Schreib-/lesbar
Loss: Überwachungsstatus PLL-Input-Clock
1: PLL-Input-Clock nicht erkannt
0: PLL-Input-Clock vorhanden;
Dieses Bit zeigt den aktuellen Überwachungsstatus des PLL-Input-Clocks
an.
nur lesbar
Lock: Einrasten bei der Arbeitsfrequenz; Status der PLL:
0: PLL ist unlocked
1: PLL ist locked
Dieses Bit stellt den aktuellen Lock-Zustand der PLL dar.
nur lesbar
R
Addr.: 0x4000_2628
Default: 0x0000_0000
Adresse einer Fehladressierung am Multi-Layer-AHB
Name
QVZ_AHB_ADR
Beschreibung
Adresse
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
59
ERTEC 200 Handbuch
Version 1.1.0
QVZ_AHB_CTRL
Beschreibung
Bit-Nr
31:7
6:4
3:1
0
R
Name
Reserviert
HBURST
HSIZE
QVZ_AHB_M
Beschreibung
R
Name
Reserviert
QVZ_AHB_DMA
QVZ_AHB_IRT
QVZ_AHB_LBU
QVZ_AHB_ARM946
Beschreibung
R
Addr.: 0x4000_2634
Default: 0x0000_0000
Beschreibung
Adresse
R
Addr.: 0x4000_2638
Default: 0x0000_0000
Adresse die zum QVZ am EMIF führte
Name
QVZ_EMIF_ADR
MEM_SWAP
Bit-Nr
31:2
1:0
Beschreibung
Reserviert
DMA
IRT
LBU
ARM946
Name
QVZ_APB_ADR
Beschreibung
Beschreibung
Default: 0x0000_0000
Adresse einer Fehladressierung am APB
QVZ_EMIF_ADR
Bit-Nr
31:0
Addr.: 0x4000_2630
Masterkennung einer Fehladressierung am Multi-Layer-AHB
QVZ_APB_ADR
Bit-Nr
31:0
Default: 0x0000_0000
Beschreibung
Reserviert
HBURST
HSIZE
HWRITE
0: HREAD
1: HWRITE
HWRITE
Bit-Nr
31:4
3
2
1
0
Addr.: 0x4000_262C
Kontroll-Signale einer Fehladressierung am Multi-Layer-AHB
Beschreibung
Adresse
R/W
Addr.: 0x4000_2644
Default: 0x0000_0000
Memory Swapping in Segment 0 auf dem AHB (ROM, EMIF-SDRAM, EMIF-Standard-Memory)
Name
Reserviert
MEM_SWAP
Beschreibung
Reserviert
Auswahl des Speichers in Segment 0 auf dem AHB:
00: Boot-ROM ab Adr 0h
01: EMIF-SDRAM ab Adr 0h
10: EMIF-Standard-Memory ab Adr 0h
11: kein Memory ab Adr 0h, Locked I-Cache kann auf Adr 0h gelegt werden
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
60
ERTEC 200 Handbuch
Version 1.1.0
M_LOCK_CTRL
Beschreibung
Bit-Nr
31:4
3
Name
Reserviert
Reserviert
2
Reserviert
1
Reserviert
0
Reserviert
ARM9_CTRL
Beschreibung
Bit-Nr
31:14
13
12
11
10
9
8:0
Addr.: 0x4000_264C
Default: 0x0000_0000
Beschreibung
Reserviert
Select Arbitrierungs-Algorithmus für AHB-Arbiter (ARB_MODE):
0: Round-robin
1: feste Prioritätszuordnung
Dieses Bit sollte nicht verändert werden (Default: Round-robin)!
Lock-Enable AHB-Master IRT:
0: Lock disabled
1: Lock enabled
Lock-Enable AHB-Master LBU:
0: Lock disabled
1: Lock enabled
Lock-Enable AHB-Master ARM9:
0: Lock disabled
1: Lock enabled
R/W
Addr.: 0x4000_2650
Default: 0x0000_1939
Kontrolle von ARM9-Inputs, die nicht von externen Pins zugänglich sind.
Dieses Register ist nur schreibbar, wenn das Write-Enable-Bit im ARM9_WE-Register gesetzt
ist. Dieses Register darf nur zu Debug-Zwecken verändert werden!
Name
Beschreibung
Reserviert
Reserviert
BIGENDIAN
BIGENDIAN (nur lesbar)
DisableGateTheClk:
DISABLE_GATE_THE 1: ARM9-Prozessor-Takt läuft frei
0: ARM9-Prozessor-Takt wird durch Wait-for-Interrupt
CLK
angehalten.
DBGEN: Enable des embedded ARM9-Debuggers
DBGEN
1: Debugger ist enabled.
0: Debugger ist disabled.
MICEBYPASS: Bypass der TCK-Synchronisation auf den ARM9-Takt.
MICEBYPASS
0: TCK wird auf ARM9-Takt synchronisiert
1: TCK wird nicht auf ARM9-Takt synchronisiert.
INITRAM: zeigt an, ob die TCMs nach (SW-)Reset freigegeben sind.
1: TCMs enabled
0: TCMs disabled
INITRAM
Dieses Bit wird nur durch den externen Reset RESET_N zurückgesetzt. SWund Watchdog-Reset haben keine Wirkung auf dieses Bit.
ETM-Option SYSOPT(8:0): zeigt die implementierten ETM-Optionen an.
SYSOPT[8:0]
Default-Wert: 139H
ARM9_WE
Beschreibung
Bit-Nr
31:1
0
R/W
AHB-Master-Lock-Enable. Master-selektive Freigabe der AHB-Lock-Funktionalität.
R/W
Addr.: 0x4000_2654
Default: 0x0000_0000
Schreibschutz-Register für das Register ARM9_CTRL.
Name
---WE_ARM9_CTRL
Beschreibung
Reserviert
Write Enable für Register ARM9_CTRL
1: ARM9_CTRL ist beschreibbar.
0: ARM9_CTRL ist nur lesbar.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
61
ERTEC 200 Handbuch
Version 1.1.0
ERTEC 200_TAG
Beschreibung
Bit-Nr
31:24
24:16
15:8
7:0
Name
Reserviert
REVISION_ID
VERSION_ID
DEBUG_ID
PHY_CONFIG
Beschreibung
Bit-Nr
31:17
16
R/W
Addr.: 0x4000_2658
Default: 0x0001_01xx
Tag-Number des aktuellen ASIC-Schaltungsstands.
Beschreibung
Reserviert: 00h
Revision-ID: 01h
Version-ID: 01h
Debug-ID: 18h
R/W
Addr.: 0x4000_265C
Default: 0x0000_0000
Konfiguration von PHY1 und PHY2
Name
PHY_RES_SEL
15 :14
13
P2_AUTOMDIXEN
12:10
P2_PHY_MODE
9
P2_FX_ MODE
8
P2_PHY_ENB
7:6
5
P1_AUTOMDIXEN
4:2
P1_PHY_ MODE
1
P1_FX_ MODE
0
P1_PHY_ENB
Beschreibung
reserviert
0: PHY Reset angeschlossen am Chip-Reset wie IRTE
1: PHY Reset angeschlossen am IRTE-Ausgang reset_phy_n 1
reserviert
1: Enable AutoMDIX state machine
0: Disable AutoMDIX state machine
000: 10BASE-T HD, Auto-Neg disabled
001: 10BASE-T FD, Auto-Neg disabled
010: 100BASE-TX/FX HD, Auto-Neg disabled
011: 100BASE-TX/FX FD, Auto-Neg disabled
100: 100BASE-TX HD angekündigt, Auto-Neg enabled
101: 100BASE-TX HD angekündigt, Auto-Neg enabled, Repeater Mode
110: PHY startet im Power Down Mode
111: Auto-Neg enabled, AutoMDIX enabled, alles möglich
1: Das 100BASE-FX Interface freigegeben
(nur sinnvoll by P2_PHY_Mode =“010“ oder “011“)
0: Das 100BASE-FX Interface gesperrt
0: PHY2 disabled (Powerdown Mode) 2
1: PHY2 enabled 1, 3
reserviert
1: Enable AutoMDIX state machine
0: Disable AutoMDIX state machine
000: 10BASE-T HD, Auto-Neg disabled
001: 10BASE-T FD, Auto-Neg disabled
010: 100BASE-TX/FX HD, Auto-Neg disabled
011: 100BASE-TX/FX FD, Auto-Neg disabled
100: 100BASE-TX HD angekündigt, Auto-Neg enabled
101: 100BASE-TX HD angekündigt, Auto-Neg enabled, Repeater Mode
110: PHY startet im Power Down Mode
111: Auto-Neg enabled, AutoMDIX enabled, alles möglich
1: Das 100BASE-FX Interface freigegeben
(nur sinnvoll by P1_PHY_Mode =“010“ oder “011“)
0: Das 100BASE-FX Interface gesperrt
0: PHY1 disabled (Powerdown Mode) 2
1: PHY1 enabled 1, 3
1
Bei CONFIG(6,5,2)=“111“ Bit nicht schreibbar, liegt dann fest auf Defaultwert.
Wird der PHY 'Disabled' und anschließend wieder 'Enabled', dann muss eine Disable-Time von > 100µs von der SW
eingehalten werden.
3
Mit P1/2_PHYENABLE = 1 wird intern im PHY noch ein Reset-Verlängerung über 5,2msec angestoßen. In dieser Zeit
wird die PLL und alle analogen- und digitalen Komponenten hochgefahren. Die Betriebsbereitschaft wird im PHY_StatusRegister mit P1/2_PWRUPRST = 1 signalisiert.
2
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
62
ERTEC 200 Handbuch
Version 1.1.0
PHY_ STATUS
Beschreibung
Bit-Nr
31:9
8
R
Name
P1_PWRUPRST
UART_CLK
Beschreibung
Bit-Nr
31:1
0
5
Default: 0x0000_0000
Beschreibung
reserviert
0: PHY2 im Powerdown Mode oder internes Reset noch aktiv
1: PHY2 ist betriebsbereit
reserviert
0: PHY1 im Powerdown Mode oder internes Reset noch aktiv
1: PHY1 ist betriebsbereit
P2_PWRUPRST
7:1
0
Addr.: 0x4000_2660
Status von PHY1 und PHY2
R/W
Addr.: 0x4000_2670
Default: 0x0000_0000
Ermöglicht die Umschaltung des UART-Clocks von 50 MHz (Default) auf 6 MHz. Mit 6 MHz ist
eine UART Baudrate von 187,5 kBd möglich.
Name
Reserviert
UART_TAKT
Beschreibung
Reserviert
UART-Takt:
0: 50 MHz
1: 6 MHz
Allgemeine Hardware Funktionen
5.1
Takterzeugung und Taktversorgung
Das Taktsystem des ERTEC 200 besteht im Wesentlichen aus vier Taktsystemen, die durch asynchrone Übergänge
voneinander entkoppelt sind.
Dies sind folgende Taktsysteme:
•
ARM946E-S zusammen mit AHB-Bus, APB-Bus und IRT
•
LBU
•
JTAG-Schnittstelle
•
PHYs und Ethernet MAC’s
5.1.1
Taktversorgung im ERTEC 200
Die benötigten Takte werden im ERTEC 200 mittels interner PLL und/oder durch direkte Einspeisung erzeugt.
Eine genaue Aufstellung der Takte zeigt die folgende Tabelle:
MODUL
ARM946ES
AHB/EMIF/ICU/LBU
IRTE (außer MAC-MII)
APB
JTAG
MAC-MII/PHY
TAKTQUELLE
PLL
PLL
PLL
PLL
JTAG-Clock
CLKP_A
FREQUENZ
50/100/150MHz (skalierbar)
50MHz
50/100MHz
50MHz
0-10MHz
25MHz
Tabelle 17: Übersicht Takte des ERTEC 200
Zur Generierung der internen Takte im ERTEC 200 ist eine PLL integriert. Die Taktversorgung der PLL erfolgt über
folgende Eingangspins:
¾ 25 MHz Quarz an den Eingängen CLKP_A und CLKP_B oder
¾ 25 MHz Taktgenerator am Eingang CLKP_A
Der Eingangstakt wird durch einen Teiler auf 12, 5 MHz heruntergeteilt und in die PLL eingespeist. Die PLL erzeugt
einen Takt von 300 MHz der den nachfolgenden Clock-Generator versorgt. Dieser erzeugt alle für den ERTEC 200
notwendigen Systemtakte.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
63
ERTEC 200 Handbuch
Version 1.1.0
Die folgende Abbildung zeigt die Erzeugung der ERTEC 200 Systemtakte:
CONFIG4
CONFIG3
CONFIG1
HCLKEN Gen.
HCLKEN
(ARM9)
BYPASS_CLK
100MHz
25 CLKP_A
MHz
BYPASS_CLK_IN
OS
C
Divider
1:2
PLL_IN
(12,5 MHz)
MUX
APLL
2
PLL_OUT
(300 MHz)
CLK_IN
Clock
Generation
CLKP_B
REF_CLK
25 MHz
Lock -Timer
Power up
(650us)
Lock
Monitor
Loc
k
0
1
Enable
0
1 MUX
CLK_ARM
0
1 MUX
CLK_100
0
1 MUX
CLK_50
&
CLK_UART
PLL_LOCK_STATE
PHY_CLK
SCAN_CLK(2:0)
SCANMODE
Abbildung 9: Taktgenerierung im ERTEC 200
Im ERTEC 200 werden vor allem die synchronen Takte CLK_50MHz und CLK_100MHz verwendet. Für den ARM946ES Prozessor kann über die Konfigurationspins CONFIG[4:3] der benötigte Prozessortakt eingestellt werden:
¾ CONFIG4, CONFIG3 = 00 Æ
ARM946 Prozessortakt ist 50 MHz.
¾ CONFIG4, CONFIG3 = 01 Æ
ARM946 Prozessortakt ist 100 MHz.
¾ CONFIG4, CONFIG3 = 10 Æ
ARM946 Prozessortakt ist 150 MHz.
¾ CONFIG4, CONFIG3 = 11 Æ
Reserviert
5.1.2
Taktversorgung JTAG
Die Taktversorgung der JTAG-Schnittstelle erfolgt über den Pin JTAG_CLK. Der Frequenzbereich liegt zwischen 0 – 10
MHz. Über die JTAG-Schnittstelle werden der Boundary-Scan und die ICE-Makrozelle des ARM946E-S aktiviert.
5.1.3
Taktversorgung PHYs und Ethernet-MACs
Beide Ethernet-MACs sind über das MII-Interface an die integrierten PHYs angeschlossen. Die Taktversorgung der
PHYs erfolgt über den internen 25MHz Takt CLKP_A. Die PHYs generieren daraus die für die Ethernet-MACs
notwendigen Taktsignale RX_CLK und TX_CLK.
Statt der internen PHYs können auch externe PHYs am ERTEC 200 angeschlossen werden. In diesem Fall müssen die
Anschlüsse des MII-Interfaces der MACs an der LBU-Schnittstelle zur Verfügung gestellt werden.
Die Taktversorgung der externen PHYs kann dann durch den Ausgangspin REF_CLK (25MHz Takt) erfolgen.
Der Ausgangspin kann mit dem Konfigurationspin CONFIG1 freigegeben/gesperrt werden:
CONFIG1 = 0
Æ
Clock 25 MHz wird am Ausgang REF_CLK freigegeben
CONFIG1 = 1
Æ
Clock 25 MHz wird am Ausgang REF_CLK gesperrt
Wenn externe PHYs verwendet werden oder zum Debuggen der Ethernet-Schnittstellen werden die MII-Interfacesignale
an Ausgangspins des LBU-Interface zur Verfügung gestellt. In beiden Fällen steht das LBU-Interface zum Anschluß
eines externen Host-Prozessors nicht mehr zur Verfügung.
Die Auswahl der MII-Interfacesignale an LBU-Pins erfolgt über Konfigurationspins:
¾ CONFIG[6,5,2] = 111b
Æ
Anschluß von externen PHYs
¾ CONFIG[6,5,2] = 011b
Æ
MII-Interfacesignale im Debugg-Modus
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
64
ERTEC 200 Handbuch
Version 1.1.0
ERTEC200
MII
MII
PHY0
(MII)
MII-Betrieb
TX_CLK
Buffer
RX_CLK
Buffer
TX_CLK
Ethernetport
RX_CLK
Ethernetport
PHY1
(MII)
CLKP_A
(25 MHz)
Abbildung 10: Taktversorgung der Ethernetanschaltung
5.2
Resetlogik des ERTEC 200
Die Resetlogik setzt die gesamte Schaltung des ERTEC 200 zurück.
Das Resetsystem des ERTEC 200 wird durch folgende Ereignisse aktiviert:
•
Hardware-Reset durch externen Pin RESET_N.
•
Software-Reset durch Bit XRES_SOFT im System-Control-Register RES_CTRL_REG.
•
Watchdog-Reset durch Watchdog-Timer Überlauf.
Das auslösende Reset-Ereignis kann im System-Control-Register RES_STAT_REG ausgelesen werden.
5.2.1
PowerOn-Reset
Die externe Hardware-Reset-Beschaltung wird am Pin RESET_N des ERTEC 200 angeschlossen. Durch Aktivieren des
Hardware-Reset wird intern die gesamte Schaltung inklusive Taktsystem des ERTEC 200 zurückgesetzt und die BOOTund CONFIG-Pins in den internen Registern gespeichert. Der Hardware-Reset muß mindestens 35µs stabil anliegen
(siehe folgende Abbildung). Danach läuft die PLL innerhalb tLock = 645µs hoch. Im ERTEC 200 wird die PowerOn-ResetPhase für diese Zeit verlängert und das Taktsystem erst am Ende der Hochlaufphase zugeschaltet. Eine Kommunikation
des Debuggers über das JTAG-Interface ist in dieser Zeit nicht möglich. Die folgende Abbildung zeigt die Hochlaufphase
der PLL nach Reset.
f/MHz
tLOCK = 645µs
300
aktiv
Reset
Hochlauf PLL
35
t/µs
Abbildung 11: Hochlaufphase der PLL
Der Lock-Zustand der PLL wird von der Hardware überwacht. Der Verlust des Eingangstaktes und der Zustand „PLL
nicht gelockt“ wird mit dem Interrupt FIQ3 gemeldet. Der Zustand der PLL kann auch im System-Control-Register
PLL_STAT_REG ausgelesen werden. Am Eingang RESET_N ist ein Filter integriert, das Spikes bis 5ns unterdrückt.
Für den Debugger steht das Reset-Signal SRST _N zur Verfügung. Das Signal wird aktiviert während RESET_N aktiv ist
und die interne PowerOn-Reset-Verlängerung läuft. Damit kann der Debugger die PowerOn-Reset-Phase erkennen.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
65
ERTEC 200 Handbuch
Version 1.1.0
5.2.2
Hardware-Reset
Der Hardware-Reset wird über den bidirektionalen Pin SRST _N (Open Drain Ausgang) ausgelöst. Aktiviert wird der
Reset normalerweise nur vom Debugger. Während der aktiven Hardware-Reset-Phase wird die komplette interne Logik
ohne das Taktsystem zurückgesetzt. Es werden auch nicht die Konfigurations- und Boot-Pins eingelesen und
abgespeichert.
Während der Hardware-Reset-Phase kann der Debugger über die JTAG-Schnittstelle mit der Embedded ICE-Logik
kommunizieren und so eine Single-Step-Aufzeichnung von der Reset-Adresse aus ermöglichen. Wie beim Eingang
RESET_N ist auch hier ein Filter integriert, das Spikes bis 5ns unterdrückt.
Beim Booten nach Hardware-Reset wird der Bootmodus verwendet, der beim PowerOn-Reset abgespeichert wurde.
Beim PowerON- und beim Hardware-Reset wird das PowerOn/Hardware-Reset-Bit im System-Control-Register
RES_STAT_REG gesetzt, das von der ausgelösten Resetfunktion unberührt bleibt. Dieses Register kann nach
Wiederanlauf ausgewertet werden.
5.2.3
Watchdog-Reset
Der Watchdog-Reset ist eine hardwareseitige Überwachung der Software. Basis für die Überwachung ist eine im
Watchdog-Timer einstellbare Zeit. Diese startet mit Aktivierung des Watchdogs. Durch Nachtriggern des Timers auf
einen eingstellten Reload-Wert wird ein Auslösen des Watchdog-Reset verhindert. Wird der Timer nicht nachgetriggert,
dann wird nach Ablauf des Timers der Watchdog-Reset aktiviert, wenn die Watchdog-Funktion mit dem Bit
WD_RES_FREI aktiv ist. Der Watchdog-Reset wird im ERTEC 200 über eine parametrierbare Pulsverlängerung (PV)
geführt. Der Watchdog-Reset setzt den kompletten Schaltungsteil des ERTEC 200 zurück.
Wie beim Hardware-Reset wird das Watchdog-Reset-Bit im System-Control-Register RES_STAT_REG gesetzt, das von
der ausgelösten Resetfunktion unberührt bleibt. Dieses Register kann nach Wiederanlauf ausgewertet werden.
Über die alternative Funktion kann das Watchdog-Ereignis am GPIO[15] einem externen Host-Prozessor gemeldet
werden.
Der Watchdog-Reset setzt auch den IRT-Switch-Controller zurück, wenn im System-Control-Register RES_CTRL_REG
das Bit EN_WD_SOFT_RES_IRTE gesetzt ist.
Beim Booten nach Watchdog-Reset wird der Bootmodus verwendet, der beim PowerOn-Reset abgespeichert wurde.
5.2.4
Software-Reset
Im ERTEC 200 kann durch Setzen des Bits XRES_SOFT im Reset-Control-Register ein Software-Reset ausgelöst
werden. Im System-Control-Register RES_STAT_REG wird beim Auslösen des Resets das Software-Reset-Bit gesetzt.
Das System-Control-Register RES_STAT_REG bleibt von der ausgelösten Resetfunktion unberührt und kann nach
Wiederanlauf ausgewertet werden.
Der Software-Reset setzt auch den IRT-Switch-Controller zurück wenn im System-Control-Register RES_CTRL_REG
das Bit EN_WD_SOFT_RES_IRTE gesetzt ist.
Beim Booten nach Software-Reset wird der Bootmodus verwendet, der beim PowerOn-Reset abgespeichert wurde.
5.2.5
IRT-Switch-Reset
Über ein Register im IRT-Switch kann das Switch-Modul zurückgesetzt werden. Die Resetfunktion des Switch-Moduls
bleibt solange erhalten bis das Bit wieder zurückgenommen wird. Die internen PHYs können entweder über den Pin
RESET_N oder vom IRT-Switch-Controller über PHY_RES_N zurückgesetzt werden. Die Auswahl, welcher Reset für die
PHYs genommen wird, wird im System-Control-Register PHY_CONFIG mit Bit PHY_RES_SEL festgelegt. Immer wenn
das SMI-Interface im IRT-Switch nicht aktiviert ist, ist der PHY_RES_N aktiv und hält bei entsprechender Selektierung
die PHYs für diese Phase im Reset-Zustand (geringe Verlustleistung der PHYs).
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
66
ERTEC 200 Handbuch
Version 1.1.0
5.3
Adressraum- und Quittungsverzug- Überwachung
Zur Erkennung von Fehladressierungen, unerlaubten Zugriffen und Quittungsverzug sind im ERTEC 200
Überwachungsmechanismen eingebaut. Folgende Peripherien werden überwacht:
•
AHB-Bus
•
APB-Bus
•
EMIF
5.3.1
AHB-Bus Überwachung
Jedem der 4 AHB-Master (ARM946, IRT, DMA, LBU) ist eine eigene Adressraumüberwachung zugeordnet. Spricht ein
AHB-Master einen nicht genutzten Adressraum an, dann wird der Zugriff mit Error-Response quittiert und ein FIQ2Interrupt am ARM946-Interrupt-Controller ausgelöst. Die fehlerhafte Zugriffsadresse wird im System-Control-Register
QVZ_AHB_ADR und die zugehörige Zugriffsart (Read, Write, HTRANS, HSIZE) im System-Control-Register
QVZ_AHB_CTRL abgespeichert. Der Master, der den Zugriffsfehler verursachte, wird im System-Control-Register
QVZ_AHB_M abgelegt.
Bei einer Zugriffsverletzung durch LBU als AHB-Master wird zusätzlich ein Interrupt-Request im IRT-Switch aktiviert und
abgespeichert. Der LBU-Interrupt LBU_IRQ0_N wird am LBU-Bus ausgegeben.
Verursachen mehrere AHB-Master gleichzeitig (AHB taktgenau) eine Zugriffsverletzung so wird nur die Verletzung des
höchstprioren AHB-Master (siehe Kapitel 3.1.1) in den Registern angezeigt.
Die Diagnoseregister QVZ_AHB_ADR, QVZ_AHB_CTRL und QVZ_AHB_M bleiben für nachfolgende
Zugriffsverletzungen solange gesperrt, bis das Register QVZ_AHB_CTRL gelesen worden ist.
5.3.2
APB-Bus Überwachung
Am APB-Bus wird der APB-Adressraum überwacht. Im Falle einer Fehladressierung im APB-Adressraum wird der Zugriff
auf APB- und AHB-Seite mit „OKAY“-Response abgeschlossen, da der APB-Bus keine Signalisierung der Response-Art
kennt. Es wird ein FIQ1-Interrupt am ARM946-Interrupt-Controller ausgelöst. Die fehlerhafte Zugriffsadresse wird im
System-Control-Register QVZ_APB_ADR angelegt. Das System-Control-Register QVZ_APB_ADR ist für nachfolgende
Adressverletzungen solange gesperrt, bis es gelesen worden ist.
5.3.3
EMIF Überwachung
Beim EMIF erfolgt die Überwachung des externen Ready-Signals RDY_PER_N. Um die Überwachung zu aktivieren ist
in den EMIF-Konfigurationsregistern Async_Bank_0_Config - Async_Bank_3_Config der „Extended_Wait_Mode“
einzuschalten. Wird einer der 4 Memorybereiche, die über die Chip-Select-Ausgänge CS_PER0_N - CS_PER3_N
selektiert werden, angesprochen, so wartet der Memory-Controller des ERTEC 200 auf das Eingangssignal
RDY_PER_N. Die Überwachungsdauer wird im EMIF-Register ASYNC_WAIT_CYCLE_CONFIG eingestellt und ist
aktiv, wenn im EMIF-Rgeister EXTENDED_CONFIG die Quittungsverzugüberwachung (Bit7) gesetzt ist. Der eingestellte
Wert (max. 255) x 16 AHB-Takte ergibt dann die Überwachungszeit, die der Memory-Controller auf das Ready-Signal
wartet. Nach Ablauf der Zeit wird ein Ready für den Memory-Controller erzeugt und ein FIQ3-Interrupt für den ARM946Interrupt-Controller generiert. Zusätzlich wird die Adresse des fehlerhaften Zugriffs im System-Control-Register
QVZ_EMIF_ADR abgespeichert. Das System-Control-Register QVZ_EMIF_ADR ist für nachfolgende
Adressverletzungen solange gesperrt, bis es gelesen worden ist.
Der gesetzte FIQ3-Interrupt wird dann weggenommen, wenn die Quittungsverzugüberwachung zurückgesetzt wird.
5.4
Konfigurationsmöglichkeiten am ERTEC 200
Zur Einstellung von verschiedenen Betriebsarten sind EMIF-Pins vorhanden, die während aktiven PowerOn-Reset
RESET_N in ein SYSTEM-CONTROL-Register SER_Conf_REG abgespeichert werden. Die Pins stehen im
Normalbetrieb als EMIF-Pins zur Verfügung.
CONFIG[1]
CONFIG[2]
CONFIG[4,3]
CONFIG[6,5]
Æ
Æ
Æ
Æ
Ausgang REF_CLK freigeben/sperren
LBU-Funktion freigeben/sperren
ARM946E-S Taktfrequenz 50/100/150 MHZ auswählen
Wenn LBU gesperrt: PHY-Debug, GPIO[44:32], ETM9 an LBU-Port auswählen
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
67
ERTEC 200 Handbuch
Version 1.1.0
CONFIG
[6]
-
CONFIG
[5]
-
CONFIG
[4]
-
CONFIG
[3]
-
CONFIG
[2]
-
CONFIG
[1]
1
0
-
1
-
-
0
-
-
0
-
-
0
-
1
-
-
-
0
-
0
-
-
-
0
-
0
1
-
-
1
-
1
0
-
-
1
-
1
-
1
-
0
0
1
1
0
1
0
1
1
-
-
Bedeutung
REF_CLK tristate
REF_CLK Ausgang (25MHz)
LBU = on,
LBU-CFG: LBU_WR_N hat
Read/Write-Control
LBU = on,
LBU-CFG: separate Readund Write-Leitung
LBU = on,
LBU_POL_RDY: LBU_RDY_N
ist high-aktiv
LBU = on,
LBU_POL_RDY:
LBU_RDY_N ist low-aktiv
LBU = off, GPIO44-32 = on
int. PHYs = on, ext. MII = PHYDebugging, ETM9 = off
LBU = off, GPIO44-32 = on
int. PHYs = on, ext. MII = off,
ETM9 = on
Reserviert
ARM-Clock 50 MHz
ARM-Clock 100 MHz
ARM-Clock 150 MHz
Reserviert
Tabelle 18: Konfigurationen für ERTEC 200
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
68
ERTEC 200 Handbuch
Version 1.1.0
6
External Memory Interface (EMIF)
Um auf externen Speicherbereich zugreifen zu können, ist im ERTEC 200 ein Externes Memory InterFace realisiert. Das
Interface beinhaltet je einen SDRAM-Memory-Controller und einen SRAM-Memory-Controller für asynchrone Speicher
und Peripherie. Beide Interfaces sind getrennt als aktive Interfaces parametrierbar. Das heißt, dass am Ende eines
Zugriffs der Datenbus aktiv auf High getrieben wird. Die internen Pullups halten den Datenbus aktiv auf high. Externe
Pullups sind nicht notwendig. Beim Schreiben erfolgt dies nach dem Ende der Strobe-Phase. Beim Lesen erfolgt das
nach Ablauf einer bestimmten Zeit nach Ende der Strobe-Phase um nicht gegen den externen gelesenen Baustein zu
treiben. Beim SDRAM-Controller ist diese Zeit ein AHB-Bus-Takt lang. Beim asynchronen Controller entspricht dies den
Ablauf der Hold-Phase was der steigenden Flanke von RD_N bis zur steigenden Flanke des Chip-Select-Signals
entspricht. Defaultmäßig ist das aktive Interface eingeschaltet.
Folgende Signalpins stehen für das EMIF am ERTEC 200 zur Verfügung:
•
•
•
•
•
•
•
•
Datenbus
Adressbus
Memory-CS
Byte-Enable
RD/WR Async.
Ready
DIR
SDRAM
32 Bit
24 Bit
4
4
2
1
2
5
D[31 : 0]
A[23 : 0]
CS_PER0_N - CS_PER3_N
BE0_DQM0_N – BE3_DQM3_N
RD_N /WR_N
RDY_PER_N
DTR_N/OE_DRIVER_N
CLK_SDRAM/CS_SDRAM_N /RAS_SDRAM_N /CAS_SDRAM_N /WE_SDRAM_N
Der SDRAM-Controller besitzt folgende Merkmale:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
16-Bit oder 32-Bit Datenbusbreite parametrierbar
PC100 SDRAM-kompatibel (50MHz Taktfrequenz)
1 Bank mit max. 128 MByte SDRAM oder
2 Bänke a 64 MByte SDRAM oder
4 Bänke a 32 MByte SDRAM bei 32-Bit Datenbusbreite
Unterstützt verschiedene SDRAMs mit folgenden Eigenschaften:
o CAS-Latency 2 oder 3 Takte
o 1/2/4 interne Bänke adressierbar (A1 : 0)
o 8/9/10/11 Bits Column-Adresse (A13, 11:2)
o max. 13 Row-Adressen
(A14 : 2)
Es werden SDRAMs mit max. 4 Bänken unterstützt. Der SDRAM-Controller kann alle 4 Bänke gleichzeitig offen halten.
Diese 4 Bänke entsprechen adressmäßig einem Viertel des SDRAM-Adressbereiches auf dem AHB-Bus. Solange die
abwechselnden Zugriffe in der jeweiligen Page liegen kann kein Page-Miss auftreten. Der Refreshcounter ist immer in
Betrieb. Er kann auch nicht ausgeschaltet werden, wenn kein SDRAM verwendet wird.
Der Asynchrone-Memory-Controller besitzt folgende Merkmale:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
8-Bit, 16-Bit oder 32-Bit Datenbusbreite parametrierbar
4 Chip-Selects
max. 16 MByte pro Chip-Select adressierbar
Für jedes Chip-Select kann ein unterschiedliches Timing parametriert werden
Für jedes Chip-Select kann das Ready-Signal unterschiedlich parametriert werden (synchron/asynchron)
Chip-Select CS_PER0_N kann für BOOT von externen Speicher verwendet werden
Datenbusbreite des externen Speicher für BOOT wird über die Eingangspins BOOT[3:0] selektiert
Defaulteinstellung „langsames Timing“ für BOOT-Vorgang.
Quittungsverzugüberwachung parametrierbar
Unterstützt folgende asynchrone Bausteine
o SRAM
o Flash-PROM
o externe Peripherie-Bausteine
Beim Einstellen des asynchronen Timing muss darauf geachtet werden, dass die Zugriffslänge (mit Ready-Control) die
Zeitspanne von 2 SDRAM-Refreshes nicht überschreitet, da sonst Refreshes verloren gehen können. Es ist zu
beachten, dass ein 32 Bit Zugriff auf 8-Bit breite Bausteine 4 Zugriffe benötigt. Während dieser Zeit ist kein SDRAMRefresh möglich.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
69
ERTEC 200 Handbuch
Version 1.1.0
6.1
Adressbelegung EMIF-Register
Die EMIF-Register sind 32-Bit breit. Die Register dürfen nur Doppelwordweise beschrieben werden.
EMIF (Basisadresse 0x7000_0000)
Register-Name
Offsetadresse Adressbereich
Zugriff
Default
Beschreibung
Revision_Code_and
_Status
0x0000
4 Byte
R
Async_Wait_Cycle
_Config
0x0004
4 Byte
W/R
0x40000080
Async Wait Cycle Config Register
SDRAM_Bank_Config
0x0008
4 Byte
R
0x000020A0
SDRAM Bank Config Register
SDRAM_Refresh
_Control
0x000C
4 Byte
W/R
0x00000190
Einstellen der Refreshhäufigkeit,
Anzeige für Quittungsverzug
Async_BANK0_Config
0x0010
4 Byte
W/R
0x3FFFFFF2
Timing/Datenbusbreite für Zugriff
über async. Interface CS_PER0_N
Async_BANK1_Config
0x0014
4 Byte
W/R
0x3FFFFFF2
Timing/Datenbusbreite für Zugriff
über async. Interface CS_PER1_N
Async_BANK2_Config
0x0018
4 Byte
W/R
0x3FFFFFF2
Timing/Datenbusbreite für Zugriff
über async. Interface CS_PER2_N
Async_BANK3_Config
0x001C
4 Byte
W/R
0x3FFFFFF2
Timing/Datenbusbreite für Zugriff
über async. Interface CS_PER3_N
Extended_Config
0x0020
4 Byte
W/R
0x03030000
Einstellung weiterer
Funktionalitäten
0x00000100 Revision-Code und Status Register
Tabelle 19: Übersicht EMIF-Register
6.2
EMIF-Register Beschreibung
Revision Code and Status
Beschreibung
Bit-Nr
31..16
15..8
7..0
Name
Reserviert
MAJOR_REVISION
MINOR_REVISION
Async Wait Cycle Config
Beschreibung
R
Addr.: 0x7000_0000
Default: 0x0000_0100
Revison Code und Status Register
Beschreibung
Reserviert
01h
00h
W/R
Addr.: 0x7000_0004
Default: 0x4000_0080
Async Wait Cycle Config Register
Bit-Nr
31
30
Name
Reserviert
WP
29..8
7..0
Reserviert
MAX_EXT_WAIT
Beschreibung
Reserviert
Wait Polarity
0: warte, wenn RDY_PER_N = 0
1: warte, wenn RDY_PER_N = 1
Reserviert
Dieser Wert x 16 entspricht der Anzahl der AHB-Takte, die der async.
Controller auf RDY_PER_N wartet, bevor der Zugriff mit QVZ-IRQ
abgeschlossen wird.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
70
ERTEC 200 Handbuch
Version 1.1.0
SDRAM Bank Config
Beschreibung
W/R
Addr.: 0x7000_0008
Default: 0x0000_20A0
SDRAM Bank Config Register
Bit-Nr
31..14
13*
Name
Reserviert
CL
12..11
10..8*
Reserviert
ROWS
7
6..4
Reserviert
IBANK
3
2..0
Reserviert
PAGESIZE
Beschreibung
Reserviert
CAS Latency
0: SDRAM wird mit CAS Latency = 2 angesteuert
1: SDRAM wird mit CAS Latency = 3 angesteuert
Reserviert
000: 8 Row Address lines
001: 9 Row Address lines
010: 10 Row Address lines
011: 11 Row Address lines
100: 12 Row Address lines
101: 13 Row Address lines
110: Reserviert
111: Reserviert
Reserviert
Internal SDRAM Bank Setup (Anzahl der Bänke im SDRAM)
000: 1 Bank
001: 2 Bänke
010: 4 Bänke
011 .. 111: Reserviert
Reserviert
Page Size
000: SDRAM mit 8 Column Address Lines
001: SDRAM mit 9 Column Address Lines
010: SDRAM mit 10 Column Address Lines
011: SDRAM mit 11 Column Address Lines
100..111: Reserviert
*) Achtung: Schreiben auf SDRAM_Bank_Config(15:7) führt das Kommando Mode Register Set am SDRAM aus, wenn
Bit 29 (init_done) im SDRAM_Refresh_Control-Register gesetzt ist (d.h. die SDRAM Power Up Sequence abgelaufen
ist).
SDRAM Refresh Control
Beschreibung
Bit-Nr
31
30
29
28..13
12..0
W/R
Addr.: 0x7000_000C
Default: 0x0000_0190
Einstellen der Refresh-Häufigkeit, Anzeige für Quittungsverzug
Name
Reserviert
AT
read only
INIT_DONE
read only
Reserviert
REFRESH_RATE
Beschreibung
Reserviert
Async Timeout
Wird bei QVZ auf 1 gesetzt
SDRAM Initialization done
0: SDRAM Power Up Sequence läuft
1: SDRAM Power Up Sequence ist abgeschlossen
Reserviert
Refresh Rate
Anzahl der AHB-Takte zwischen 2 SDRAM Refresh Cycles
Der Refreshcounter ist immer eingeschaltet, auch wenn kein SDRAM verwendet wird. In diesem Fall sollte „refresh_rate“
= 0x1FFF (maximaler Wert) gesetzt werden, um die Belastung so gering wie möglich zu halten.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
71
ERTEC 200 Handbuch
Version 1.1.0
Async Bank 0 Config
Async Bank 1 Config
Async Bank 2 Config
Async Bank 3 Config
Beschreibung
W/R
W/R
W/R
W/R
Addr.: 0x7000_0010
Addr.: 0x7000_0014
Addr.: 0x7000_0018
Addr.: 0x7000_001C
Default: 0x3FFF_FFF2
Default: 0x3FFF_FFF2
Default: 0x3FFF_FFF2
Default: 0x3FFF_FFF2
Einstellen des Timings und der Datenbusbreite für Zugriffe über asynchrones Interface
CS_PER0_N - CS_PER3_N. (Der AHB Takt hat eine Länge von 20 ns)
Bit-Nr
31
Name
EWS_XAS
30
EW
29..26
W_SU
25..20
W_STROBE
19..17
W_HOLD
16..13
R_SU
12..7
R_STROBE
6..4
R_HOLD
3..2
1..0
Reserviert
ASIZE
Beschreibung
Extend Wait Timing Mode
0: RDY_PER_N = asynchron
1: RDY_PER_N = synchron
Extend Wait Mode
0: RDY_PER_N = don’t care
1: warte bis RDY_PER_N aktiv
Write Strobe Setup Cycles
(w_su + 1) AHB-Takte zwischen gültiger Adresse, Daten und Chip Select
und fallender Flanke des Schreibsignals.
Write Strobe Duration Cycles
(w_strobe + 1) AHB-Takte zwischen fallender und steigender Flanke des
Schreibsignals.
Write Strobe Hold Cycles
(w_hold + 1) AHB-Takte zwischen steigender Flanke des Schreibsignals
und Wechsel von Adresse, Daten und Chip Select
Read Strobe Setup Cycles
(r_su + 1) AHB-Takte zwischen gültiger Adresse und Chip Select und
fallender Flanke des Lesesignals (RD_N).
Read Strobe Duration Cycles
(r_strobe + 1) AHB-Takte zwischen fallender und steigender Flanke des
Lesesignals.
Read Strobe Hold Cycles
(r_hold + 1) AHB-Takte zwischen steigender Flanke des Lesesignals und
Wechsel von Adresse und Chip Select
Reserviert
Async Bank Size
00: 8-Bit Datenbus
01: 16-Bit Datenbus
1x: 32-Bit Datenbus
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
72
ERTEC 200 Handbuch
Version 1.1.0
Extended Config
Beschreibung
W/R
Addr.: 0x7000_0020
Default: 0x0303_0000
Einstellung weiterer Funktionalitäten
Bit-Nr
31
30
Name
Reserviert
TEST_1
29
TEST_2
28..26
25
Reserviert
ADB
24
ASDB
23..20
19
Reserviert
TEST_3
18
17..16
Reserviert
BURST_LENGTH
15
14
Reserviert
TRCD/TCD
13..9
8
Reserviert
SDSIZE
7
ATIRQ
6..0
Reserviert
Beschreibung
Reserviert
Test Mode 1
0: 200 us Delay nach System Reset (SDRAM Power Up)
1: Delay nach System Reset wird sofort beendet
Test Mode 2
0: normale Funktion
1: alle SDRAM-Zugriffe sind Misses
Reserviert
Active Data Bus
Nach jedem Zugriff auf das SDRAM wird Datenbus aktiv auf 1 getrieben, um
integrierte Pullups zu unterstützen.
Async. active Data Bus
Nach jedem Zugriff auf den async. Bereich wird Datenbus am Ende der
Hold-Phase aktiv auf 1 getrieben, um integrierte Pullups zu unterstützen.
Reserviert
Test Mode 3
0: normale Funktion
1: DTR_N = Test Output
Reserviert
SDRAM Burst Length
00: 1
01: 2
10: Full Page, Read INCR_S Burst Length = 4
11: Full Page, Read INCR_S Burst Length = 8
Reserviert
Zeit zwischen den SDRAM-Kommandos
Activate und Read/Write, Precharge und Activate
0: 1 AHB-Takte
1: 2 AHB-Takt
Reserviert
SDRAM Bank Size
0: 32-Bit Datenbus
1: 16-Bit Datenbus
0: QVZ-Watchdog für async. Zugriffe disabled
1: QVZ-Watchdog für async. Zugriffe enabled
Nach Ablaufen des Watchdogs (256 AHB-Takte) wird Interrupt ausgelöst. Bit
7 auf 0 setzen löscht Interrupt-Quelle.
Reserviert
Programmiervorschrift für EMIF-Register :
Zum richtigen Einstellen des SDRAM müssen die Werte für Burst_Length und SDRAM-Bank-Breite im Register
„Extended Config“ zusammen passen. Die Bits müssen vor dem Auslösen des Kommandos „MODE-Register-SET“
eingestellt werden, sonst werden sie nicht in das SDRAM übertragen. Das Kommando Mode-Register-Set wird ausgelöst
durch beschreiben der Bits [15:8] des Registers SDRAM-Bank-Config wenn im Register SDRAM-Refresh-Control das
Bit 29 = 1 ist.
SDRAM 32Bit Datenbreite: Extended Config[8] = 0
Extended Config[17:16] = 11 Full Page, Read INCR_S Burst Length = 8
Extended Config[17:16] = 10 Full Page, Read INCR_S Burst Length = 4
Extended Config[17:16] = 00 Burst Length = 1
SDRAM 16Bit Datenbreite: Extended Config[8] = 1
Extended Config[17:16] = 11 Full Page, Read INCR_S Burst Length = 8
Extended Config[17:16] = 10 Full Page, Read INCR_S Burst Length = 4
Extended Config[17:16] = 01 Burst Length = 2
Alle anderen Einstellungen führen zu Fehlfunktionen
Das Kommando Mode Register Set wird durch Schreiben der Bits im Register SDRAM_Bank_Config[15:8] ausgelöst.
(Register SDRAM_Refresh-Control[29] =1)
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
73
ERTEC 200 Handbuch
Version 1.1.0
7
Local Bus Unit (LBU)
Der ERTEC 200 kann auch von einem externen Host-Prozessor betrieben werden. Dafür steht die LBU BusSchnittstellen zur Verfügung:
Die Aktivierung des Bussystems erfolgt über den Konfigurationspin CONFIG[2].
CONFIG[2] = 0
CONFIG[2] = 1
LBU-Bussystem aktiv
LBU-Bussystem inaktiv (Zusatzfunktion PHY-Debug, ETM-Trace, GPIO[44:32] aktivierbar)
Die LBU ist ein 16-Bit breites Dateninterface.
Folgende Signalpins stehen für die LBU am ERTEC 200 zur Verfügung:
•
•
•
•
•
•
•
•
•
Datenbus
Adressbus
Memory-CS
Register-CS
RD/WR
Ready
Byte-Selektion
Page-Segmentauswahl
Interruptausgänge
16 Bit
21 Bit
1
1
2
1
2
2
2
LBU_D[15 : 0]
LBU_A[20 : 0]
LBU_CS_M_N
LBU_CS_R_N
LBU_WR_N / LBU_RD_N
LBU_RDY_N
LBU_BE[1 : 0]
LBU_SEG[1 : 0]
LBU_IRQ0_N, LBU_IRQ1_N
Über die LBU kann auf vier unterschiedliche Pages innerhalb des ERTEC 200 zugegriffen werden.
Jede Page kann getrennt eingestellt werden.
Die Einstellungen der vier Pages erfolgt über LBU-Pageregister. Pro Page stehen 5 Pageregister zur Verfügung. Mit
Ihnen werden Größe, Offset und Zugriffsbreite der Page eingestellt. Auf die Pageregister kann über das Chip-SelectSignal „LBU_CS_R_N“ zugegriffen werden.
Folgende Einstellungen pro Page sind möglich:
•
Speichergröße einer Page zwischen 256 Byte und 2 MByte mit 2 Page-Range-Register
•
Offset (Segment) der Page im 4Gbyte Adressbereich mit 2 Page-Offset-Register
•
Zugriffsart (Datenbitbreite) mit 1 Page-Control-Register
Nach erfolgter Konfiguration der Pageregister erfolgt der Zugriff auf den ERTEC 200 internen Adressbereich über das
Chip-Select-Signal „LBU_CS_M_N“.
Die LBU unterstützt für verschiedene Host-Rechner Zugriffe auf den Adressbereich mit getrennten Read- und
Writeleitungen oder mit einer gemeinsamen Read-/Writeleitung.
Die Einstellung der Zugriffsart erfolgt über den Konfigurationseingang Config[5].
Config[5]
RD/WR-Control
0
separate RD/WR-Leitung
1
LBU_WR_N hat RD/WR-Control
Die Polarität des Ready-Signals erfolgt über den Konfigurationseingang Config[6].
Config[6]
LBU_RDY_N
0
LOW-Aktiv
1
HIGH-Aktiv
LBU_RDY_N ist ein Tristate-Ausgang. Erfolgt über das LBU-Interface ein Zugriff auf den ERTEC 200 (CS mit RD oder
WR aktiv) , dann wird LBU_RDY_N zuerst auf inaktiv (Wait) geschaltet. Sobald die Daten verfügbar sind (Read), bzw.
übernommen werden können (Write), wird LBU_RDY_N für einen 50 MHz-Takt aktiv und danach wieder auf Tristate
geschaltet. Der exteren Pull- (up/down) Widerstand treibt dann weiterhin den Ready-Zustand.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
74
ERTEC 200 Handbuch
Version 1.1.0
Die vier Segmente werden über die beiden Eingänge LBU_SEG[1:0] angesprochen.
LBU_SEG [1:0]
Adressiertes Segment
00
LBU_PAGE0
01
LBU_PAGE1
10
LBU_PAGE2
11
LBU_PAGE3
Page-Range-Einstellung
Die Pagegröße jeder Page wird in den Rangeregistern PAGEx_RANGE_HIGH und PAGEx_RANGE_LOW eingestellt (x
= 0 ... 3). Beide Page-Range-Register ergeben zusammen ein 32 Bit Adressregister. Die Größe der Pages variiert
zwischen 256 Byte und 2 MByte. Die Bits 0 ... 7 und die Bits 22 ... 31 des PAGEx_RANGE-Registers bleiben deshalb
unverändert auf dem Wert 0, auch wenn ein Wert 1 eingetragen wird. Ist in einem der PAGE-RANGE-Register überhaupt
kein Bit gesetzt, dann wird defaultmäßig die Range dieser Page auf 256 Byte gesetzt. Sind in einem der PAGE-RANGERegister mehrere Bits auf 1 gesetzt, dann errechnet sich die Range immer nach dem höchstwertigen Bit (siehe Beispiel
2 in nachfolgender Tabelle)
PAGEx_RANGE_HIGH
31
2423
16
00000000 00010000
00000000 00000110
00000000 00000010
00000000 00000000
PAGEx_RANGE_LOW
15
8 7
0
01000000 00000000
00000000 00000000
00000000 00000000
00000001 00000000
Größe der Page x
1 MByte
256 kByte
128 kByte
256 Byte
Tabelle 20: Einstellung verschiedener Pagegrößen
Die größte genutzte Page bestimmt somit die Anzahl der Adressen, die an der LBU angeschlossen werden müssen. In
der Page-Range-Tabelle oben ist die größte genutzte Page 1MByte groß (i = Bit 20). Die höchsten Adressen errechnen
sich aus Amax = 20 – 1. In diesem Fall werden die Adresseleitungen A [19:0] benötigt.
Dieser Adressiermechanismus bewirkt eine Spiegelung der eingestellten Pagegröße im gesamten Segment.
7.2
Page-Offset-Einstellung
Die Pageoffset jeder Page wird in den Rangeregistern PAGEx_OFFSET_HIGH und PAGEx_ OFFSET _LOW eingestellt
(x = 0 ... 3). Beide Page-Offset-Register ergeben zusammen ein 32 Bit Offsetregister. Die Auswertung des Registers ist
so, das der Offset nur bis zum höchsten gesetzten Bit des dazugehörigen Page-Rang-Registers ausgewertet wird. Diese
Bits werden dann als oberste Adresse auf den AHB-Bus geschaltet. Die folgende Tabelle zeigt einige Beispiele für eine
Offsetberechnung:
PAGEx_ OFFSET _HIGH
31
2423
16
01000000 00000000
00010000 00000000
00000000 00000001
00000000 00000000
PAGEx_ OFFSET _LOW
15
8 7
0
00000000 00000000
00000000 00000000
00000000 00000000
00000001 00000000
Offset für Page x
1 GByte
256 MByte
64 kByte
256 Byte
Tabelle 21: Einstellung verschiedener Offsetbereiche
Da der Hostrechner immer auf die Pageregister zugreifen kann, können die Pages jederzeit umparametriert werden.
Dies ist zum Beispiel sinnvoll wenn über eine Page die Peripherie initialisiert werden soll. Ist nach der Initialisierung ein
Zugriff auf diesen Adressbereich nicht mehr notwendig, dann kann die Page umparametriert werden um auf andere
Adressbereiche des ERTEC 200 zuzugreifen.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
75
ERTEC 200 Handbuch
Version 1.1.0
7.3
LBU-Adressmapping
Die folgende Tabelle veranschaulicht beispielhaft das ERTEC 200-Adress-Mapping aus Sicht eines externen HostProzessors:
SEG(1:0)
AD(19:0)
00
00
00
01
01
01
01
01
01
10
10
10
10
10
10
11
11
11
11
11
11
0_0000h
SEGMENT
AUFTEILUNG
1MB
SEGMENT
GRÖßE
1MB
F_FFFFh
0_0000h
64k
1MB
0_FFFFh
1_0000h
BEMERKUNG
Page SDRAM (1MB)
Range: 0010 0000h
Offset: 2000 0000h
Page KRAM (64kB)
Range: 0001 0000h
Offset: 1010 0000h
64k
gespiegelt
F_FFFFh
0_0000h
1_FFFFh
2_0000h
128k
1MB
Page ext. SRAM (128kB)
Range: 0002 0000h
Offset: 3000 0000h
1MB
Page APB-Peripherie
Range: 0000 4000h
Offset: 4000 0000h
128k
gespiegelt
F_FFFFh
0_0000h
0_3FFFh
0_4000h
16k
16k
gespiegelt
F_FFFFh
Tabelle 22: Adress-Mapping aus Sicht eines externen Host-Prozessors am LBU-Port
In dem Beispiel werden maximal 1 MB adressiert. Dafür werden die Adressen A[19:0] des Host-Prozessors an den
LBU_ADR [19:0] verdrahtet. Zusätzlich sind die Adressen A[21:20] für die Segmentauswahl notwendig. Diese werden an
die LBU-Pins LBU_SEG[1:0] angeschlossen.
ADR(19:0)
Host
ADR(21:0)
LBU_ADR(19:0)
LBU_ADR(20)
ADR(21:20)
ETEC200
LBU
LBU_SEG(1:0)
Abbildung 12: Verschaltung der Adressen zwischen Host und ERTEC 200-LBU
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
76
ERTEC 200 Handbuch
Version 1.1.0
7.4
Page-Control-Einstellung
Mit dem Page-Control-Register kann der Anwender die Zugriffsart auf die entsprechende Page einstellen. Bestimmte
Bereiche des ERTEC 200 müssen mit einem 32-Bit Datenzugriff durchgeführt werden, um eine Konsistenz der Daten zu
gewährleisten. Bei anderen Bereichen ist auch ein 8-Bit- oder 16Bit-Datenzugriff erlaubt. Die folgende Tabelle zeigt an,
welche ERTEC 200-Adressbereiche zwingend als 32-Bit Zugriffe eingestellt werden müssen:
ERTEC 200 Bereich
System-Control-Register
Timer 0 / 1 / 2
F-Counter
Watchdog
IRT-Register
SDRAM
KRAM (als User-RAM)
KRAM (Switch-RAM)
Restliche APB Peripherie
(UARTs, SPI, GPIO)
32-Bit Zugriff notwendig
x
x
x
x
x
-
32-Bit Zugriff möglich
x
x
x
-
x
Tabelle 23: Aufstellung der Zugriffe auf Adressbereiche von ERTEC 200
In den Paging Control Registern wird eingestellt, ob der entsprechende Pagebereich 16-Bit oder 32-Bit organisiert
angesprochen wird. Bei einer 16-Bit breit organisierten Page wird jeder Byte- oder Wordzugriff zum AHB-Bus
weitergeleitet. Bei einer 32-Bit breit organisierten Page wird beim Lesen auf das LOW-Word ein
32-Bit Lesezugriff am AHB-Bus durchgeführt, das LOW-Word weitergeleitet und das HIGH-Word in der LBU
zwischengespeichert. Ein nachfolgendes Lesen auf der High-Word-Adresse gibt den zwischengespeicherten Wert aus.
Damit ist ein konsistentes Lesen von 32-Bit Daten auf einem 16-Bit Bus gewährleistet. Beim 32-Bit Schreibzugriff wird
zuerst das LOW-Word im LBU-Bereich zwischengespeichert. Mit dem Schreibzugriff auf das HIGH-Word wird dann ein
32-Bit-Zugriff auf den AHB-Bus durchgeführt. Byte Zugriffe werden direkt an den AHB-Bus weitergegeben und sind
deshalb bei einer 32-Bit breiten Page nicht sinnvoll.
Beim Hostzugriff auf die Adressbereiche des ERTEC 200 muß unterschieden werden zwischen 16-Bit- und 32-Bit-HostProzessor.
Bei einem 16-Bit-Host-Prozessor wird die Datenbreite der Variablen definiert. Die verschiedenen Compiler realisieren die
Zugriffe in beliebiger Reihenfolge. Es muß bei einem 32-Bit Zugriff durch die Anwendersoftware sichergestellt werden,
das der Zugriff in der Reihenfolge LOW-Word und danach HIGH-Word auf den 32-Bit-Adressbereich erfolgt.
Bei einem 32-Bit-Host-Prozessor wird die Zugriffsreihenfolge durch Einstellung seines „Externen Bus Controllers“
festgelegt. Der Adressbereichszugriff muß in diesem Fall als „Little-Endian-Zugriff“ parametriert werden.
7.5
Host-Zugriffe auf den ERTEC 200
Beim Zugriff eines Host auf den ERTEC 200 verhält sich dieser wie ein „16-Bit Little Endian“ Baustein mit 8-Bit und 16Bit Zugriffsmöglichkeiten. Folgende Zugriffe werden unterstützt:
LBU_BE1_N
LBU_BE0_N
LBU_A0
1
0
0
8-Bit LOW
0
1
1
8-Bit HIGH
0
0
0
16-Bit
Rest
AHB-Zugriff
nicht erlaubt
Tabelle 24: Hostzugriffe auf Adressbereiche von ERTEC 200
Die Zugriffe des Host erfolgen asynchron zum AHB-Clock des ERTEC 200. Deshalb werden sie auf den AHB-Clock
einsynchronisiert. Die folgenden Abbildungen zeigen verschiedene Read- und Write-Sequenzen mit den dazugehörigen
Timingwerten:
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
77
ERTEC 200 Handbuch
Version 1.1.0
7.5.1
LBU Read zum ERTEC200 mit separater Read-/Writeleitung (Ready low aktiv)
LBU_CS_R_N/
LBU_CS_M_N
tRCSH
tCSRS
LBU_RD_N
tRR
tARS
LBU_A(20:0)A/
LBU_SEG(1:0)/
LBU_BE(1:0)_N
tRRE
tRAH
tRAP
LBU_RDY_N
tRDE
tRTD
tRDH
LBU_D(15:0)
Abbildung 13: LBU-Read-Sequenz bei separater RD-/WR-Leitung
Parameter
Description
Min
Max
tCSRS
chip select asserted to read pulse asserted delay
0 ns
tARS
address valid to read pulse asserted setup time
0 ns
tRRE
read pulse asserted to ready enabled delay
5 ns
12 ns
tRDE
read pulse asserted to data enable delay
5 ns
12 ns
tRAP
ready active pulse width
17 ns
23 ns
tRTD
ready asserted to data valid delay
tRCSH
read pulse deasserted to chip select deasserted delay
0 ns
tRAH
address valid to read pulse deasserted hold time
0 ns
tRDH
data valid/enabled to read pulse deasserted hold time
0 ns
tRR
read recovery time
25 ns
5 ns
12 ns
Tabelle 25: Timing für LBU-Lesezugriffe mit separater Read-/Writeleitung
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
78
ERTEC 200 Handbuch
Version 1.1.0
7.5.2
LBU Write zum ERTEC200 mit separater Read-/Writeleitung (Ready low aktiv)
LBU_CS_R_N/
LBU_CD_M_N
tWCSH
tCSWS
LBU_WR_N
tWR
tAWS
LBU_A(20:0)/
LBU_SEG(1:0)
LBU_BE(1:0)_N
tWRE
tRTW
tWAH
LBU_RDY_N
tRAP
tWDV
tWDH
LBU_D(15:0)
Abbildung 14: LBU-Write-Sequenz bei separater RD-/WR-Leitung
Parameter
tCSWS
tAWS
tWRE
tWDV
tRAP
tWCSH
tWAH
tRTW
tWDH
tWR
Description
chip select asserted to write pulse asserted delay
address valid to write pulse asserted setup time
write pulse asserted to ready enabled delay
write pulse asserted to data valid delay
ready active pulse width
write pulse deasserted to chip select deasserted delay
address valid to write pulse deasserted hold time
ready asserted to write pulse deasserted delay
data valid/enabled to read pulse deasserted hold time
write recovery time
Min
0 ns
0 ns
5 ns
17 ns
0 ns
0 ns
0 ns
0 ns
25 ns
Max
12 ns
40 ns
23 ns
Tabelle 26: Timing für LBU-Schreibzugriffe mit separater Read-/Writeleitung
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
79
ERTEC 200 Handbuch
Version 1.1.0
7.5.3
LBU Read zum ERTEC200 mit gemeinsamer Read-/Writeleitung (Ready low aktiv)
LBU_CS_R_N/
LBU_CS_M_N
tRR
tWCS
LBU_WR_N
tCWH
tACS
LBU_A(20:0)/
LBU_SEG(1:0)/
LBU_BE(1:0)_N
tCRE
tCAH
tRAP
LBU_RDY_N
tCDE
tCDH
tRTD
LBU_D(15:0)
Abbildung 15: LBU-Read-Sequenz bei gemeinsamer RD-/WR-Leitung
Parameter
tWCS
tACS
tCRE
tCDE
tRAP
tRTD
tCWH
tRAH
tRDH
tRR
Description
write signal deasserted to chip select asserted setup time
address valid to chip select asserted setup time
chip select asserted to ready enabled delay
chip select asserted to data enable delay
ready active pulse width
ready asserted to data valid delay
write signal inactive to chip select deasserted hold time
address valid to chip select deasserted hold time
data valid/enabled to chip select deasserted hold time
read recovery time
Min
2 ns
0 ns
5 ns
5 ns
17 ns
0 ns
0 ns
0 ns
25 ns
Max
12 ns
12 ns
23 ns
5 ns
12 ns
Tabelle 27: Timing für LBU-Readzugriffe mit gemeinsamer Read-/Writeleitung
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
80
ERTEC 200 Handbuch
Version 1.1.0
7.5.4
LBU Write zum ERTEC200 mit gemeinsamer Read-/Writeleitung (Ready low aktiv)
LBU_CS_R_N/
LBU_CS_M_N
tWR
tWCS
LBU_WR_N
tCWH
tACS
LBU_A(20:0)/
LBU_SEG(1:0)/
LBU_BE(1:0)_N
tCRE
tCAH
tRTC
LBU_RDY_N
tRAP
tCDV
tCDH
LBU_D(15:0)
Abbildung 16: LBU-Write-Sequenz bei gemeinsamer RD-/WR-Leitung
Parameter
tWCS
tACS
tCRE
tCDV
tRAP
tCWH
tCAH
tRTC
tCDH
tWR
Description
write signal asserted to chip select setup time
address valid to chip select asserted setup time
chip select asserted to ready enabled delay
chip select asserted to data valid delay
ready active pulse width
write signal deasserted to chip select deasserted hold time
address valid to chip select deasserted hold time
ready asserted to chip select deasserted delay
data valid/enabled to chip select deasserted hold time
write recovery time
Min
2 ns1
0 ns
5 ns
17 ns
0 ns
0 ns
0 ns
0 ns
25 ns
Max
12 ns
40 ns
23 ns
Tabelle 28: Timing für LBU-Schreibzugriffe mit gemeinsamer Read-/Writeleitung
1
Die Setup-Zeit des Schreib-Signals muss eingehalten werden, sonst treibt die LBU den ERTEC 200 Datenbus.
Die LBU besitzt getrennte Chip-Select-Leitungen für die Page Register (LBU_CS_R_N) und den Zugriff auf den AHBBus (LBU_CS_M_N). Die beiden Chip Selects dürfen nicht gleichzeitig aktiv werden und auch nicht während eines LBUZugriffs gewechselt werden.
7.6
Host Interrupt Handling
Der ERTEC 200 generiert 2 Interrupt-Signale LBU_IRQ0_N und LBU_IRQ1_N zum externen Host. Beide Interrupts
werden im IRT-Switch-Interrupt-Controller generiert. Beide Signale sind default auf „Low-Aktiv“ eingestellt. Sie können
aber auch im IRT-Switch umparametriert werden.
Ein Mailbox-Handling zwischen dem ARM946E-S und einem externen Host ist über den IRT-Switch-Interrupt-Controller
möglich.
Ein Interrupt-Request vom ARM946E-S zum Host-Prozessor wird durch Schreiben auf das Registern
Activate_HP_Interrupt ausgelöst.
Ein Interrupt-Request vom Host-Prozessor zum ARM946E-S wird durch Schreiben auf das Registern
Activate_SP_Interrupt ausgelöst.
Beide Register sind nur beschreibbar. Der zu schreibende Wert ist beliebig.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
81
ERTEC 200 Handbuch
Version 1.1.0
7.7
Adressbelegung LBU-Register
Die LBU-Register sind 16-Bit breit. Die Register dürfen nur Wordweise beschrieben werden. Die LBU-PagingConfigurationsregister werden über den Eingang „LBU_CS_R_N“ adressiert
LBU
Register-Name
Offsetadresse Adressbereich
Zugriff
Default
Beschreibung
LBU_P0_RG_L
0x0000
2 Byte
W/R
0x0000
LBU Pagex-Range-Register0 Low
LBU_P0_RG_H
0x0002
2 Byte
W/R
0x0001
LBU Pagex-Range-Register0 High
LBU_P0_OF_L
0x0004
2 Byte
W/R
0x0000
LBU Pagex-Offset-Register0 Low
LBU_P0_OF_H
0x0006
2 Byte
W/R
0x1010
LBU Pagex-Offset-Register0 High
LBU_P0_CFG
0x0008
2 Byte
W/R
0x0000
LBU Konfigurations-Register0
LBU_P1_RG_L
0x0010
2 Byte
W/R
0x0000
LBU Pagex-Range-Register1 Low
LBU_P1_RG_H
0x0012
2 Byte
W/R
0x0010
LBU Pagex-Range-Register1 High
LBU_P1_OF_L
0x0014
2 Byte
W/R
0x0000
LBU Pagex-Offset-Register1 Low
LBU_P1_OF_H
0x0016
2 Byte
W/R
0x1000
LBU Pagex-Offset-Register1 High
LBU_P1_CFG
0x0018
2 Byte
W/R
0x0001
LBU Konfigurations-Register1
LBU_P2_RG_L
0x0020
2 Byte
W/R
0x0000
LBU Pagex-Range-Register2 Low
LBU_P2_RG_H
0x0022
2 Byte
W/R
0x0020
LBU Pagex-Range-Register2 High
LBU_P2_OF_L
0x0024
2 Byte
W/R
0x0000
LBU Pagex-Offset-Register2 Low
LBU_P2_OF_H
0x0026
2 Byte
W/R
0x3000
LBU Pagex-Offset-Register2 High
LBU_P2_CFG
0x0028
2 Byte
W/R
0x0000
LBU Konfigurations-Register2
LBU_P3_RG_L
0x0030
2 Byte
W/R
0x0800
LBU Pagex-Range-Register3 Low
LBU_P3_RG_H
0x0032
2 Byte
W/R
0x0000
LBU Pagex-Range-Register3 High
LBU_P3_OF_L
0x0034
2 Byte
W/R
0x2000
LBU Pagex-Offset-Register3 Low
LBU_P3_OF_H
0x0036
2 Byte
W/R
0x4000
LBU Pagex-Offset-Register3 High
LBU_P3_CFG
0x0038
2 Byte
W/R
0x0001
LBU Konfigurations-Register3
Tabelle 29: Übersicht LBU-Register
7.8
LBU-Register Beschreibung
LBU_P0_RG_L
LBU_P1_RG_L
LBU_P2_RG_L
LBU_P3_RG_L
Beschreibung
Bit-Nr
15..0
W/R
W/R
W/R
W/R
Addr.: LBU_CS_R_N+0x00
Addr.: LBU_CS_R_N+0x10
Addr.: LBU_CS_R_N+0x20
Addr.: LBU_CS_R_N+0x30
Default: 0x0000_0000
Default: 0x0000_0000
Default: 0x0000_0000
Default: 0x0000_0800
Low Wort des LBU Pagex_Range_registers
Name
Beschreibung
Untere 16 Bit für Bereichseinstellung
15:8 sind schreib- und lesbar
7:0 sind nur lesbar (Wert: 00h)
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
82
ERTEC 200 Handbuch
Version 1.1.0
LBU_P0_RG_H
LBU_P1_RG_H
LBU_P2_RG_H
LBU_P3_RG_H
Beschreibung
Bit-Nr
15..0
Name
Beschreibung
W/R
W/R
W/R
W/R
Addr.: LBU_CS_R_N+0x04
Addr.: LBU_CS_R_N+0x14
Addr.: LBU_CS_R_N+0x24
Addr.: LBU_CS_R_N+0x34
Default: 0x0000_0000
Default: 0x0000_0000
Default: 0x0000_0000
Default: 0x0000_2000
Low Wort des LBU Pagex_Offset_registers
Name
Beschreibung
Beschreibung
Untere 16 Bit für Offseteinstellung
15:8 sind schreib- und lesbar
7:0 sind nur lesbar (Wert: 00h)
W/R
W/R
W/R
W/R
Addr.: LBU_CS_R_N+0x06
Addr.: LBU_CS_R_N+0x16
Addr.: LBU_CS_R_N+0x26
Addr.: LBU_CS_R_N+0x36
Default: 0x0000_1010 (KRAM)
Default: 0x0000_1000 (IRT-Reg)
Default: 0x0000_3000 (EMIF)
Default: 0x0000_4000 (Periph.)
High Wort des LBU Pagex_Offset_registers
Name
Beschreibung
Obere 16 Bit für Offseteinstellung
LBU_P0_CFG
LBU_P1_CFG
LBU_P2_CFG
LBU_P3_CFG
Beschreibung
Bit-Nr
15..1
0
Default: 0x0000_0001 (64 k)
Default: 0x0000_0010 (1M)
Default: 0x0000_0020 (2M)
Default: 0x0000_0000 (2 k)
Beschreibung
Obere 16 Bit für Bereichseinstellung
15:6 sind nur lesbar (Wert: 000h)
5:0 sind schreib- und lesbar
LBU_P0_OF_H
LBU_P1_OF_H
LBU_P2_OF_H
LBU_P3_OF_H
Bit-Nr
15..0
Addr.: LBU_CS_R_N+0x02
Addr.: LBU_CS_R_N+0x12
Addr.: LBU_CS_R_N+0x22
Addr.: LBU_CS_R_N+0x32
High Wort des LBU Pagex_Range_registers
LBU_P0_OF_L
LBU_P1_OF_L
LBU_P2_OF_L
LBU_P3_OF_L
Bit-Nr
15..0
W/R
W/R
W/R
W/R
W/R
W/R
W/R
W/R
Addr.: LBU_CS_R_N+0x08
Addr.: LBU_CS_R_N+0x18
Addr.: LBU_CS_R_N+0x28
Addr.: LBU_CS_R_N+0x38
Default: 0x0000_0000 (16Bit)
Default: 0x0000_0001 (32Bit)
Default: 0x0000_0000 (16Bit)
Default: 0x0000_0001 (32Bit)
Konfiguration für die einzelnen Pages
Name
PAGE_X_32
Beschreibung
Reserviert
1: Page ist 32-Bit Page
0: Page ist 16-Bit Page
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
83
ERTEC 200 Handbuch
Version 1.1.0
8
DMA-Controller
Der ERTEC 200 besitzt einen 1-kanaligen DMA-Controller. Damit können Daten ohne zusätzliche Belastung des
ARM946E-S transferiert werden. Folgende Datentransfers sind möglich:
SOURCE
TARGET
SYNCHRONISATION
Peripheral (1)
Memory
Peripheral(1)
Memory
Memory
Peripheral(1)
Peripheral(1)
Memory
Source
Target
Source and Target
None
Tabelle 30: DMA-Transfermodi
Note (1) Aufgrund der 1 kanaligen Struktur kann der DMA Controller bei den seriellen Schnittstellen nur eine Richtung
(Transmit oder Receive) bedienen. Bei Vollduplex-Betrieb muß die andere Richtung per Software abgearbeitet werden.
Eigenschaften des DMA-Controllers:
AHB-Master-Interface für den Transfer von Daten
•
•
AHB-Slave-Interface für Zugriffe des ARM946E-S auf die DMA-Register
•
4 Request-Inputs zur Synchronisierung des DMA-Controllers mit der Peripherie UART oder SPI
•
Source- und Destinationadresse müssen immer 4-Byte-Aligned sein (Bit 1:0 werden ignoriert)
•
Eine Bitbreite von 8 / 16 / 32 kann unabhängig für die Source bzw. für das Target spezifiziert werden. Dabei
kann die Bitbreite kleiner als die Bitbreite von Source oder Target sein.
•
Die zu transferierende Blockgröße wird in Anzahl von Bytes angegeben und muß zur eingestellten Busbreite
aligned sein. D.h. ist eine Busbreite von 32Bit Bytecount füt Target oder Source parametriert, kann nur ein
Bytecount mit 4 Byte aligned verwendet werden.
•
Changed-Adress-Mode/Hold-Adress-Mode muß für Source und Target jeweils einzeln eingestellt werden.
Synchronisationssignale von UART und SPI für DMA-Transfers:
SOURCE
BESCHREIBUNG
SPI1_SSPRXDMA
SPI1_SSPTXDMA
UART_UARTRXINTR
UART_UARTTXINTR
RX-FIFO not empty
TX-FIFO empty
UART Receive Interrupt
UART Transmit Interrupt
Tabelle 31: Peripherie-Synchronisationssignale
Beschreibung der Adress-Modes:
•
Change-Adress-Mode:
Inkrementieren oder dekrementieren der Target- und/oder Sourceadresse nach jedem Transfer (Byte, 2 Byte, 4
Byte). Entsprechend der transferierten Bytes wird der Bytezähler inkrementiert oder dekrementiert.
•
Hold-Adress-Mode:
In diesem Mode ist die Target- oder Source-Adresse fix.
¾ Der DMA-Transfer kann von der Software über ein DMA-Control-Register oder von einem
Hardwaresignal initiiert werden
Softwaresteuerung:
Mit Schreiben auf das DMA-Konfigurationsregister Bit Start/Abort kann der Transfer gestartet bzw.
gestoppt werden.
Hardwaresteuerung:
Die Steuerung der Datentransfers erfolgt durch Aktivierung des Synchronisationssignales (siehe
Tabelle „Peripherie-Synchronisationssignale“). Sobald das Sync-Signal deaktiviert wird, stoppt der
DMA-Controller den Transfer. Mit der nächsten Aktivierung des Sync-Signales wird der Datentransfer
vom DMA-Controller fortgesetzt.
¾
Nach Beendigung des DMA-Transfers erfolgt ein DMA_INTR Interrupt. Beim Transfer zum UART oder
SPI erfolgt der Interrupt nach Übergabe des letzten Bytes.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
84
ERTEC 200 Handbuch
Version 1.1.0
8.1
Adressbelegung DMA-Register
Die DMA-Register sind 32-Bit breit. Die Register dürfen nur 32-Bit breit beschrieben werden. Auf die Register kann nur
der Processor ARM946E-S zugreifen.
Register-Name
DMA-Register (Start 0x8000_0000)
Offsetadresse Adressbereich
Zugriff
Default
DMAC0_SRC_ADDR_REG
0x0000
4 Byte
R/W
0x00000000
DMAC0_DEST_ADDR_REG
0x0004
4 Byte
R/W
0x00000000
DMAC0_CONTR_REG
0x0008
4 Byte
R/W
0x00000000
DMAC0_CONF_REG
0x000C
4 Byte
R/W
0x00000000
Beschreibung
DMA StardadressRegister
DMA ZieldadressRegister
DMA Control
Register
DMA Configuration
Register
Tabelle 32: Übersicht DMA-Register
8.2
DMA-Register Beschreibung
(DMAC0SrcAddrReg)
DMA-Source Address
Beschreibung
Bit No.
31..0
W/R
Addr.: 0x8000_0000
Default: 0x0000_0000
Startadresse des vom DMA Controller zu transferierenden Datenblocks.
Name
START_ADDRESS
Beschreibung
Startadresse
Nur Wortadressen sind erlaubt; bits 0,1 werden ignoriert
(DMAC0DestAddrReg)
DMA-Destination Address
Beschreibung
Bit No.
31..0
W/R
Addr.: 0x8000_0004
Default: 0x0000_0000
Zieladresse des vom DMA Controller zu transferierenden Datenblocks.
Name
DESTINATION_ADD
RESS
Beschreibung
Zieladresse
Nur Wortadressen sind erlaubt; bits 0,1 werden ignoriert
(DMAC0ContrReg)
Channel Control (*)
Beschreibung
31..24
23..21
20..16
15..0
W/R
Addr.: 0x8000_0008
Default: 0x0000_0000
Zur Definition der Datenblocklänge.
Reserviert
D_DELAY_EXTENTI
ON
S_DELAY_EXTENTI
ON
BYTE_COUNT
Zur Verlängerung des D_Delays in Anzahl von 50MHz-Clocks (siehe
Channel Config)
Zur Verlängerung des S_Delays in Anzahl von 50MHz-Clocks (siehe
Channel Config)
Anzahl der zu transferierenden Bytes. Der Bytecount muß aligned zur
eingestellten Busbreite sein, d.h. wird ein 32Bit Bytecount für das Target
oder Source eingestellt, kann nur ein 4 Byte alignter Bytecount verwendet
werden.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
85
ERTEC 200 Handbuch
Version 1.1.0
(DMAC0ConfReg)
Channel Config (*)
Beschreibung
W/R
Addr.: 0x8000_000C
Default: 0x0000_0000
Control Bits.
31
START/ABORT
30
29
28..27
Reserviert
INTR_ENABLE (****)
SYNCHRONIZATION
26..24
23..22
S_ADDR_MODE
21..19
S_DMA_REQU
18..16
S_WIDTH
15..14
D_ADDR_MODE
13..11
D_DMA_REQU
10..8
D_WIDTH
7..4
D_DELAY(***)
3..0
S_DELAY(***)
Write:
0: Stop Transfer
1: Start Transfer
Read:
0: Transfer beendet oder gestoppt
1: Transfer noch nicht beendet
Reserviert
1: Freigabe Interrupt
00: keine
01: Destination
10: Source
11: beide
Reserviert
00: Source address incrementieren
01: Source address decrementieren
10: Source address halten
11: Reserviert
000:
SSP_SSPRXDMA
001:
SSP_SSPTXDMA
010:
UART_UARTRXINTR
011:
UART_UARTTXINTR
Rest:
nicht benutzt
000:
8 Bit
001:
16 Bit
010:
32 Bit
Rest: nicht erlaubt
00: Destination address incrementieren
01: Destination address decrementieren
10: Destination address halten
11: Reserviert (beeinflusst destination address Inkrementierung)
000:
SSP_SSPRXDMA
001:
SSP_SSPTXDMA
010:
UART_UARTRXINTR
011:
UART_UARTTXINTR
Rest:
nicht benutzt
000:
8 Bit
001:
16 Bit
010:
32 Bit
Rest: nicht erlaubt
Write inaktiv Delay Counter: Der DMA-Controller legt die spezifizierte Anzahl
von Clocks (50 MHz) zwischen zwei Write-Zugriffen ein.
Read inaktiv Delay Counter: Der DMA-Controller legt die spezifizierte Anzahl
von Clocks (50 MHz) zwischen zwei Read-Zugriffen ein.
*: Byte count & destination width (D_Width) müssen zusammen passen. Falls Halfword in D_Width selektiert ist, dann
wird Bit 0 von Byte Count ignoriert (betrachtet als “0”). Falls Word in D_Width selektiert ist, dann wird Bit 1:0 von Byte
Count ignoriert (betrachtet als “00”).
**: Der DMA wird mit 'Start/Abort = 1' gestartet und während des Betriebs mit 'Start/Abort = 0' gestoppt. The DMA has to
be started by setting bit 31 to ‘1’. Die restlichen Bits sind gelockt während der DMA in Betrieb ist. Wenn der DMA
gestoppt wurde benötigt es mindestens 2 Clocks (50 MHz) bevor er wieder gestartet werden kann.
***: Mit dem Delay Counter erfolgt eine Wartezeit bis zum nächsten Request, falls das Target (UART, SPI1) zu langsam
ist.
Bei nachfolgenden Einstellungen sind die angegebenen Delay-Werte zwingend einzuhalten, da sonst der DMA das
jeweilige Request-Signal falsch verarbeitet und zu früh auf das entsprechende Peripheriemodul zugreift:
⇒ D_Delay >= 4
- Sychronization = Destination + D_DMA_Requ = SSP_SSPTXDMA:
- Sychronization = Destination + D_DMA_Requ = UART_UARTTXINTR:
⇒ D_Delay >= 5
- Sychronization = Source + S_DMA_Requ = SSP_SSPRXDMA:
⇒ S_Delay >= 0
- Sychronization = Source + S_DMA_Requ = UART_UARTRXINTR:
⇒ S_Delay >= 0
****: Wenn Synchronization benutzt wird, kommt der Interrupt erst nach dem das Target-Request wieder aktiviert wurde.
Wenn D_Delay benutzt wird, kommt der Interrupt erst nach dem Delay des letzten Write-Zugriffs.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
86
ERTEC 200 Handbuch
Version 1.1.0
9
Multiport Ethernet PHY
Im ERTEC 200 ist ein 2-fach Multiport-PHY (Physicyl Layer Transceiver) integriert, der folgende Übertragungsmodi
unterstützt:
•
10BASE-T
•
100BASE-TX
•
100BASE-FX
Die Übertragungsmodi stehen pro Port getrennt zur Verfügung und können unterschiedlich eingestellt werden.
Der PHY ist kompatibel zu den Standards:
•
IEEE802.3
•
IEEE802.3u
•
ANSI X3.263-1995
•
ISO/IEC9314
Das Dateninterface zu den Ethernet-MACs erfolgt über MII. Das Managment-Interface ist über die MDIO-Schnittstelle
(SMI-Interface) ansprechbar. Die Taktversorgung von 25 MHz ist folgendermaßen bereitzustellen:
•
25MHz Quarz an den ERTEC 200 Pins CLKP_A und CLKP_B oder
•
25MHz Takt am ERTEC 200 Pin CLKP_A
Neben den Grundfunktionalitäten der Übertragungsmodi 10BASE-T, 100BASE-TX und 100BASE-FX unterstützen die
PHY’s noch:
•
Auto-Negotiation
•
Auto-Crossing
•
Auto-Polarity
Über das SMI-Interface sind folgende PHY-Register parametrierbar:
Register-Nr.
0
1
2
3
4
5
6
7
8 - 15
16
17
18
19
20 - 26
27
28
29
30
31
Beschreibung
Basic-Control-Register
Basic-Status-Register
PHY-Identifier 1
PHY-Identifier 2
Auto Negotiation Advertisement Register
Auto Negotiation Link Partner Ability Register
Auto Negotiation Expansion Register
Next Page Timing Register
nicht unterstützte Register
Silicon Revision Code
ModeControl/ Status Register
Special Modes
SMII Configuaration Status Register
Reserviert
Control/Status Indication Register
Special Internal Tastability Register
Interrupt Source Register
Interrupt Mask Register
PHY Special Control/Status Register
Gruppe
Basic
Basic
Extended
Extended
Extended
Extended
Extended
Extended
-----Vendor-specific
Vendor-specific
Vendor-specific
Vendor-specific
Vendor-specific
Vendor-specific
Vendor-specific
Vendor-specific
Vendor-specific
Vendor-specific
Die genaue Beschreibung der PHY-Register ist in /13/ nachzulesen.
Beim Hardware-Reset bzw. beim Verlassen des „Power Down States“ (Px_PHY_ENB = 1) wird an einem internen
Config-Port des PHYs eine initiale Konfiguration eingestellt. Die Konfiguration kann im PHY-Registersatz nachträglich
geändert werden. Das interne Config-Port umfasst folgende Parametrierung, die z.T. fest eingestellt bzw. per SW im
SYSTEM-CONTROL-Register PHY_CONFIG eingestellt werden kann:
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
87
ERTEC 200 Handbuch
Version 1.1.0
•
•
•
•
•
•
•
•
•
•
P1/2_PHYADDRESS4..0
P1/2_PHYMODE2..0
P1/2_MIIMODE1..0
P1/2_SMIISOURCESYNC
P1/2_FXMODE
P1/2_AUTOMIDIXEN
P1/2_NPMSGCODE2..0
P1/2_PHYENABLE
REG2OUIIN15..0
REG3OUIIN15..0
(1)
Die Werte für die beiden Register setzen sich folgendermaßen zusammen:
Port1 = 00000b; Port2 = 00001b
siehe PHY_CONFIG im SYSTEM-CONTROL-Registerbereich
MII-Interface (fest eingestellt)
Normaler SMII-Mode
siehe PHY_CONFIG im SYSTEM-CONTROL-Registerbereich
siehe PHY_CONFIG im SYSTEM-CONTROL-Registerbereich
000b
siehe PHY_CONFIG im SYSTEM-CONTROL-Registerbereich
Default Value for SMII-Register2 (0x0033) (1)
Default Value for SMII-Register3 (0x2001) (1)
Die NEC-OUI ist 0x003013 und wird interpretiert als
1
2
0
0
3
4
0
0
...............
0
0
0
0
0
0
0
0
0
3
0
0
1
1
3
0
0
1
1
2
3
2
4
0
0
1
0
0
1
0
Bit
Hex-Format
OUI-Format
Die PHY-ID setzt sich zusammen aus der OUI [24:3] + Manufacturer Model Number[5:0] + Revision Number[3:0]
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
OUI[24:3]
Manufacturer Model Number[5:0] 0 0 0 0 0 0
Revision Number[3:0]
0
0
3
3
2
REG2OUIIN
0
0
0
0
0
1
REG3OUIIN
Im PHY_CONFIG Register können oben genannte Parameter für das interne Config-Port verändert werden. Zusätzlich
werden auch die Bits P1_PHY_ENB /P2_PHY_ENB in diesem Register aktiviert. Die Parameter und das Freigabe-Bit
können mit einem Schreibzugriff übergeben werden, da die benötigte Setup-Time von 200ns durch die ERTEC 200Hardware sichergestellt wird.
Mit dem Select-Bit PHY_RES_SEL im PHY_CONFIG Register kann der Anwender auwählen welcher Reset-Pin für die
PHYs verwendet wird:
•
PHY_RES_SEL = 0
RESET_N von ERTEC 200 Power-ON-Reset
•
PHY_RES_SEL = 1
PHY_RESET_N von IRT-Switch
Wird der Power-ON-Reset verwendet, dann sind die PHYs nach der RESET-Phase aktiv.
Wird der PHY_Reset_N verwendet und das SMI-Modul im IRT-Switch wurde nicht aktiviert, dann bleiben die PHYs im
Reset-Zustand (keine Verlustleistung durch die PHYs).
Der HW-Reset muß mindestens 100µs anstehen. Bei einem SW-Reset über das PHY_CONFIG Register wird intern die
Reset-Dauer auf 256µs verlängert um die PLL zu stabilisieren.
Jeder PHY besitzt 6 LED-Outputs die als alternative Funktion auf die GPIOs[7:0] geführt sind. Es können pro PHY vier
Statusanzeigen auf externe LEDs verdrahtet werden. Folgende Anzeigen sind parallel verfügbar:
•
P1/P2_DUPLEX_N
(Half/Full)
•
P1/P2_SPEED_N
(100BASE-TX/FX Status, 10BASE-T Status)
•
P1/P2_LINK_STATUS_N
(On/Off)
•
P1/P2_ACTIVITY_N
(No/Receive, No/Transmit, No/Activity)
Power-Management-Funktionalität der PHYs:
•
Hardware-Power-Down: Dieser Zustand wird durch den Hardware-Reset erreicht. Der PHY ist abgeschaltet
und damit die Verlustleistung auf ca. 0 mW pro PHY begrenzt. Mit Bit P1_PHY_ENB /P2_PHY_ENB=1 wird
dieser Zustand verlassen. Alle Analog- und Digital-Module werden initialisiert und die Konfiguration
abgespeichert. Danach kann der PHY-Registersatz erstmalig parametriert werden. Intern wird im PHY mit
P1/P2_PHY_ENB=1 eine Reset-Verlängerung von 5,2 ms angestoßen um die PLL und alle analogen und
digitalen Komponenten zu stabilisieren. Die Betriebsbereitschaft wird im PHY_STATUS Register mit Bit
P1/P2_PWRUPRST=1 angezeigt.
•
Software-Power-Down: Wird über das PHY-Register 0 Basic-Control-Register Bit11 aktiviert. Der PHY geht
anschließend in den LOW-Power-State. Das MDIO-Interface ist weiterhin aktiv. Aktivitäten am MII-Interface
werden unterbunden. Die Verlustleistung im Low-Power-State liegt pro PHY bei ca. 15 mW. Nach Beendigung
des Power-Down Modes werden die digitalen Module neu initialisiert, die Konfiguration aber nicht neu
abgespeichert. Beim Verlassen des Power Down Zustandes wird intern ein Reset von 256µs generiert um die
PLL zu stabilisieren bevor der PHY wieder betriebsbereit ist.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
88
ERTEC 200 Handbuch
Version 1.1.0
1
•
Automatic-Power-Down: Wird über das PHY-Register 17 ModeControl/ Status Register Bit 13 eingestellt.
Liegt keine Aktivität auf dem MII-Interface, dann wird automatisch in den Power Down Mode geschaltet. Die
Verlustleistung im Low-Power-State liegt pro PHY bei ca. 15 mW. Mit Link-Pulses oder Packets am MIIInterface wird der Low-Power-Mode wieder verlassen. Die digitalen Module werden neu initialisiert, die
Konfiguration aber nicht neu abgespeichert. Beim Verlassen des Power Down Zustandes wird intern ein Reset
von 256µs generiert um die PLL zu stabilisieren bevor der PHYs wieder betriebsbereit ist.
Beide PHYs generieren je einen Interrupt, die verodert auf den Interrupteingang IRQ9 des ARM946E-S InterruptControllers gelegt sind. Folgende Ereignisse lösen den Interrupt aus:
•
•
•
•
•
•
•
•
INT1:
INT2:
INT3:
INT4:
INT5:
INT6:
INT7:
INT8:
Auto-Negotiation Page Received
Parallel Detection Fault
Auto-Negotiation LP-Acknowledge
Link Down
Remote Fault Detected
Auto-Negotiation complete
ENERGY On generated
SMII elastic buffer overflow/underflow
Die externe Beschaltung des UTP-Interfaces und des 100BASE-FX ist in der Beschreibung /xx/ dargestellt.
Werden die internen PHYs nicht benutzt, sondern externe PHYs am MII-Interface angeschlossen, dann müssen
trotzdem alle Versorgungsspannungen den internen PHYs zugeführt und die Referenzspannung am EXTRES-Pin
angelegt werden. Alle anderen Eingänge des des TX/FX-Interfaces müssen mit GND oder VDD beschaltet werden.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
89
ERTEC 200 Handbuch
Version 1.1.0
10 Speicherbeschreibung
In diesem Kapitel werden die Speicherbereiche aller integrierter Funktionsgruppen detailliert beschrieben.
10.1 Speicheraufteilung des ERTEC 200
In der folgenden Tabelle sind die AHB-Master mit ihren Zugriffsmöglichkeiten auf die verschiedenen
Speicherbereiche aufgelistet.
Start- und
Endadresse
Seg.
Funktionsbereich
für ARM9
Funktionsbereich
für IRTE
Funktionsbereich
für LBU
Funktionsbereich
für DMA
0
Boot ROM(0-8kB)
EMIF-SDRAM
(0-128MB)
EMIF-Memory
(0-64MB)
D-TCM(4kB)
locked I-Cache
(2/4/6kB)
Boot ROM(0-8kB)
EMIF-SDRAM
(0-128MB)
EMIF-Memory
(0-64MB)
Boot ROM(0-8kB)
EMIF-SDRAM
(0-128MB)
EMIF-Memory
(0-64MB)
Boot ROM(0-8kB)
EMIF-SDRAM
(0-128MB)
EMIF-Memory
(0-64MB)
1
IRT-SwitchController
IRT-SwitchController
IRT-SwitchController
Not used
2
EMIF (SDRAM)
EMIF (SDRAM)
EMIF (SDRAM)
EMIF (SDRAM)
3
EMIF
( Area: Bank 0-3)
EMIF
( Area: Bank 0-3)
EMIF
( Area: Bank 0-3)
EMIF
( Area: Bank 0-3)
4
alle APBInterfaces incl.
Boot-ROM
Not used
alle APBInterfaces incl.
Boot-ROM
alle APBInterfaces incl.
Boot-ROM
5
ARM-ICU
Not used
Not used
Not used
6
Not used
Not used
Not used
Not used
7
EMIF-Register
Not used
EMIF-Register
Not used
8
DMA
Not used
Not used
Not used
9 - 15
Not used
Not used
Not used
Not used
0000 0000
0FFF FFFF
1000 0000
1FFF FFFF
2000 0000
2FFF FFFF
3000 0000
3FFF FFFF
4000 0000
4FFF FFFF
5000 0000
5FFF FFFF
6000 0000
6FFF FFFF
7000 0000
7FFF FFFF
8000 0000
8FFF FFFF
9000 0000
FFFF FFFF
Tabelle 33: Aufteilung der Speicherbereiche
Das D-TCM mit einer Größe von max. 4kByte kann auf einen beliebigen alignten Adressbereich eingeblendet
werden. Der ARM946E-S greift dann unter diesem Adressbereich in das D-TCM und nicht auf den AHB-Bus.
Auch der locked I-Cache von 2/4/6 kByte kann auf einen beliebigen alignten Adressbereich eingeblendet werden.
Auf beide Adressbereiche hat nur der ARM946E-S Zugriffsmöglichkeiten.
IRT-Zugriffe auf das eigenen KRAM gehen nicht über den AHB-Bus. Diese Zugriffe sind im IRT-Switch-Controller
realisiert. Der KRAM ist ab dem Speicherbereich 0x1010_0000 ansprechbar. Ein Zugriff in den nicht erlaubten
Registerbereich wird durch eine IRT interne Fehlersignalisierung und nicht durch einen AHB-QVZ-Error erkannt.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
90
ERTEC 200 Handbuch
Version 1.1.0
10.2 Detaillierte Speicherbeschreibung
In der folgenden Tabelle sind die Speichersegmente genauer beschrieben. Gespiegelte Segmente sollten für eine
spätere kompatible Erweiterung des Speichers nicht zur Adressierung verwendet werden.
Segment
Contents
Größe
Adressbereich
0
Boot-ROM (0-8kB)
oder
EMIF-SDRAM (0-128MB)
oder
EMIF-Memory(0-64MB)
oder
Locked I-Cache
(2/4/6kB)
256 MB
0000_0000 0FFF_FFFF
1
IRT-Switch
256 MB
1000_0000 1FFF_FFFF
Beschreibung
Nach Reset:
Boot-ROM (8kB physikal.;
Memory-Swap=00b);
Nach Memory-Swap:
EMIF-SDRAM (128MB physikal.;
Memory-Swap=01b);
oder
EMIF-Memory (64MB physikal.;
Memory-Swap=10b);
Aus ARM9-Sicht kann ein Locked ICache (2/4/6k) bzw. ein D-TCM
(4k)eingeblendet werden. Note2
2 MB physikalisch;
- 0-1MB für IRT-Register
- 1-2MB für KRAM (64 kByte)
Note1
128 MByte
2
EMIF (SDRAM)
256 MB
2000_0000 2FFF_FFFF
3
EMIF
Peripheral Bank 0
16 MB
3000_0000 30FF_FFFF
EMIF
Peripheral Bank 1
16 MB
3100_0000 31FF_FFFF
Bei Anschaltung eines kleineren Devices
Spiegelung über die gesamten 16 MB
EMIF
Peripheral Bank 2
16 MB
3200_0000 32FF_FFFF
Bei Anschaltung eines kleineren Devices
Spiegelung über die gesamten 16 MB
EMIF
Peripheral Bank 3
16 MB
3300_0000 33FF_FFFF
Bei Anschaltung eines kleineren Devices
Spiegelung über die gesamten 16 MB
3400_0000 3FFF_FFFF
Not used
4
Bei Nutzung eines kleineren
Speicherbereiches Spiegelung über den
gesamten Bereich
Bei Anschaltung eines kleineren Devices
Spiegelung über die gesamten 16 MB
4000_00004000_1FFF
8 kByte physikalisch
8 kB
Timer 0 - 2
256 Byte
4000_2000 4000_20FF
32 Byte physikalisch
Note2
Watchdog
256 Byte
4000_2100 4000_21FF
28 Byte physikalisch
Note2
256 Byte
4000_2200 4000_22FF
256 Byte physikalisch
SPI
256 Byte
4000_2300 4000_23FF
256 Byte physikalisch
UART
256 Byte
4000_2400 4000_24FF
256 Byte physikalisch
Reserviert
GPIO
256 Byte
4000_2500 4000_25FF
32 Byte physikalisch
Note2
System-ControlRegister-Block
256 Byte
4000_2600 4000_26FF
F-Counter
256 Byte
4000_2700 4000_27FF
164 Byte physikalisch
System-Control-Registerblock ERTEC 200
Note2
8 Byte physikalisch
Note2
Internal Boot-ROM
Reserviert
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
4000_28004FFF_FFFF
91
ERTEC 200 Handbuch
Version 1.1.0
Segment
Contents
Größe
Adressbereich
5
ARM-ICU
256 MB
5000_00005FFF_FFFF
6
Not used
256 MB
6000_00006FFF_FFFF
7
EMIF-Register
256 MB
7000_00007FFF_FFFF
8
DMA-Register
256 MB
8000_0000FFFF_FFFF
Not used
1,75 GB
9000_0000FFFF_FFFF
9 - 15
Beschreibung
ARM – Interrupt-Controller
128 Byte physikalisch
Note2
Steuer-Register für external Memory-Interface
64 Byte physikalisch
Note2
DMA-Controller
16 Byte physikalisch
Note2
Tabelle 34: Detaillierte Beschreibung der Speichersegmente
Note:
1. Der Zugriff auf IRT-Register und -KRAM sollte nur in den oben angegebenen Adressbereichen (ersten 2 MByte) erfolgen,
Ein Zugriff auf Bereiche innerhalb der 2 MB, die nicht von den IRT-Registern und dem KRAM belegt sind führen zu keinen
undefinierten Zugriff (Quittungsverzug). Die gelesenen bzw. geschriebenen Daten sind nicht gültig. Innerhalb des 8 MB großen
physikalischen Adressebereiches werden die 2 MByte-Bereiche zwar gespiegelt, jedoch mit verschiedenen Zugriffsarten:
¾ 2-4 MB Bereich für unaligned konsistente 16-Bit Zugriffe auf IRT
¾ 4-6 MB Bereich für unaligned konsistente 32-Bit Zugriffe auf IRT
¾ 6-8 MB Wird nicht unterstützt (liefert undefineirte Werte)
Der 8 MB große Adressbereich ist 32 mal innerhalb der 256MB gespiegelt.
2. Speicherbereiche sind entsprechend folgender Formel gespiegelt:
N=
Speichergröße
-------------------------------------------Speichergröße physikalisch
n
Bei Speichergröße physikalisch gilt immer die Grenzen von 2 (2, 4, 8 … 128, 256 usw.)
Beispiel: Beim Watchdog ist die phsikalische Speichergröße 28 Bytes. Für die Berechnung der Anzahl N Spiegelungen werden
aber 32 Bytes genommen. Die Anzahl der Spiegelungen ist in diesem Fall N = 8. Ein Zugriff auf die 4 nicht genutzten Bytes
führt zu keinem Quittungsverzug, jedoch sind die gelesen bzw. geschriebenen Werte nicht definiert.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
92
ERTEC 200 Handbuch
Version 1.1.0
11 Test und Debugging
11.1 Embedded Trace Macrocell ETM9
Im ARM946E-S des ERTEC 200 ist ein ETM9-Modul integriert welches ein Tracen von Befehlscode und Daten
ermöglicht. Das ETM-Modul wird vom ARM946E-S mit den notwendigen Signalen versorgt um die
Tracefunktionen durchführen zu können. Bedient wird das ETM9-Modul über das Trace- oder JTAG-Interface. Die
Traceinformationen werden in einem internen FIFO abgelegt und über die Schnittstelle zum Debugger
weitergeleitet. Das ETM-Interface steht am LBU-Port als alternative Funktion zur Verfügung. Die Selektion erfolgt
über die Konfigurationspins CONGIG[6, 5, 2] = 101 b.
11.1.1 Tracemodi
•
•
Normal-Mode mit 4- oder 8-Bit Datenbreite
Übertragungsmodes
o Fullrate-Mode bei 50 oder 100MHz (Datenübernahme durch Debugger mit steigender Trace-ClockFlanke)
o Halfrate-Mode bei 150MHz (Datenübernahme durch Debugger mit beiden Trace-Clock-Flanke)
11.1.2 Features des ETM9-Modul
Im ERTEC 200 ist die Ausprägung des ETM9-Moduls Medium.
Es besitzt folgende Features:
•
4 Adresskomparatorpaare
•
2 Datenkomparatoren mit Filterfunktion
•
1 Triggereingange (über GPIO extern verfügbar)
•
1 Triggerausgang (über GPIO extern verfügbar)
•
8 Memory-Map-Decoder zum Dekodieren des physikalischen Adressbereichs des ERTEC 200 (*1)
•
1 Sequenzer
•
2 Counter
*1 Ergänzend zur ETM9 Spezifikation wurden die 8 MMD Regionen per Hardware dekodiert:
•
SEG0: 0k – 4k
: Instruction- und Datenzugriff auf I-Cache
•
SEG0: voll
: Instruction- und Datenzugriff auf BOOT-ROM / SDRAM / CS0
•
SEG1: 0M – 1M
: Datenzugriff auf IRT - Register
•
SEG1: 1M – 2M
: Instruction- und Datenzugriff auf IRT - KRAM
•
SEG2: 0M – 256M
: Instruction- und Datenzugriff auf externes SDRAM
•
SEG3: 0k – 16k
: Instruction- und Datenzugriff auf externes CS0 (normalerweise Flash)
•
SEG3: 16k – 32k
: Instruction- und Datenzugriff auf externes CS1 (normalerweise SRAM)
•
SEG4,5,7,8: voll
: Datenzugriff auf interne Register (APB, ICU, EMIF, DMA)
Weitere Informationen zum ETM sind im Dokument /1/ Kapitel 9 nachzulesen.
11.1.3 ETM9 – Register
Auf eine Beschreibung der ETM-Register wird in diesem Dokument verzichtet da abhängig von den
verschiedenen ETM-Versionen diese unterschiedlich behandelt werden.
Eine detaillierte Beschreibung ist unter /7/ nachzulesen.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
93
ERTEC 200 Handbuch
Version 1.1.0
11.2 Trace – Interface
Parametriert, freigegeben oder gesperrt wird das Trace-Interface durch einen angeschlossenen Debugger (z.B
von Lauterbach) an der JTAG-Schnittstelle.
Zum Tracen von internen Prozessorzuständen wird ein Traceport im ERTEC 200 zur Verfügung gestellt:
•
PIPESTA [2:0]
•
TRACESYNC
•
TRACECLK
•
TRACEPKT[7:0]
Die Signale PIPESTA[2:0],TRACEPKT[7:0] und TRACESYNC sind alternative Signalpins am LBU-Interface. Die
Aktivierung des Traceinterfaces erfolgt mit den Configurations-Pins CONFIG[6,5,2] = 101. Das Traceinterface
kann im Debugger mit 4-Bit oder 8-Bit Datenbreite parametriert werden. Bei der Einstellung 4-Bit werden
automatisch die Signale TRACEPKT[3:0] auf Tracefunktion geschaltet. In der Einstellung 8-Bit werden zusätzlich
die Signale TRACEPKT[7:4] auf Tracefunktion geschaltet.
Stecker, Pinning und Hardwarebeschaltung für das Trace-Interface siehe Dokument /7/.
11.3 JTAG – Schnittstelle
Das JTAG-Interface wird neben der Debugfunktion auch für den Boundary-Scan (siehe Dokument /9/) verwendet.
Zusätzlich zur JTAG-Schnittstelle stehen zum Debuggen noch die Signale DBGREQ und DBGACK als alternative
Funktionspins zur Verfügung. Wegen der unterschiedlichen Debugger (Hitex- oder MC-Variante) wird auf einem
internen Pull-Up-Widerstand am JTAG-Pin TRST_N verzichtet. Der Anwender hat für die richtige Beschaltung für
seinen eingesetzten Debugger zu sorgen.
Der Standardstecker für JTAG-Schnittstellen ist ein 20 pol. Stecker mit einem Pinabstand von 0,1“. Hier werden
alle JTAG-Pins und die beiden zusätzlichen Pins DBGREQ und DBGACK angeschlossen. Der Stecker ist
folgendermaßen belegt:
Funktion
Vcc-Sense
TRST_N
TDI
TMS
TCK
RTCK (#1)
TDO
RST (#1)
DBGREQ
DBGACK
Pin-Nr.
1
3
5
7
9
11
13
15
17
19
Pin-Nr.
2
4
6
8
10
12
14
16
18
20
Funktion
Vcc
GND
GND
GND
GND
GND
GND
GND
GND
GND
Tabelle 35: Steckerbelegung JTAG-Schnittstelle
Stecker, Pinning, Signalbeschreibung und Hardwarebeschaltung für JTAG-Standardschnittstelle für z.B. Multi-ICE
Debugger finden sie im Dokument /8/.
Zusätzlich zum Standard-JTAG Stecker können die Pins auch am Trace-Interface mit angeschlossen sein.
Stecker, Pinning und Hardwarebeschaltung für JTAG-Signale am Trace-Interface siehe Dokument /7/.
11.4 Debugging über UART
Wird der UART nicht für anwenderspezifische Aufgaben genutzt, so kann dieser auch als Debugschnittstelle
eingesetzt werden. Ein effektives Real-Time-Debugging wird möglich wenn man die IRQ-Interrupt-Quellen des
UART auf die FIQ’s mit den Nummern 6 oder 7 mappt. Dadurch ist ein Debuggen von Interruptroutinen möglich.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
94
ERTEC 200 Handbuch
Version 1.1.0
12 Sonstiges
12.1 Abkürzungen/ Begriffsverzeichnis:
AHB
AMBA
APB
BIST
ComDeC
DTCM
ERTEC
EMIF
ETM
FIQ
GPIO
ICE
ICU
IRQ
IRT
ITCM
JTAG
LBU
MAC
MII
MPU
PD
PU
RT
SPI
SRT
SW
UART
WS
AMBA Advanced Highperformance Bus (Multimaster, Bursts)
Advanced Microcontroller Bus Architecture
AMBA Advanced Peripheral Bus (Singlemaster, Bursts)
Build In Self Test
Communication, Development & Certification
Data Tightly Coupled Memory
Enhanced Real-Time Ethernet Controller
External Memory Interface
Embedder Trace Macrocell
Fast Interrupt Request
General Purpose Input/Output
In Circuit Emulator
Interrupt Controller Unit
Interrupt Request
Isochrones Real Time
Instruction Tigthly Coupled Memory
Joint Test Action Group
Local Bus Unit
Media Access Controller
Media Independent Interface
Memory Protection Unit
Pull Down
Pull Up
Real Time
Standard Serial Peripheral Interface
Soft Real Time
Software
Universal Asynchronous Receiver / Transmitter
Warteschlange
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
95
ERTEC 200 Handbuch
Version 1.1.0
12.2 Literaturverzeichnis:
/1/
/2/
/3/
/4/
/5/
/6/
/7/
/8/
/9/
/10/
/11/
/12/
/13/
/14/
Technical Referenz Manual ARM946E-S REV1 16.2.2001 (DDI 0201A_946ES.PDF);
Technical Referenz Manual ARM946E-S 16.12.1999 (DDI_ 0165A_9E-S_TRM. PDF);
AHB PCI-Bridge Revision2.5 08.07.2002 (amba2pci_rev2.5.pdf);
AMBA Specification (Revision 2.0), 1999; ARM
ARM Prime CellTM UART (PL010) Technical Reference Manual; ARM
ARM Prime CellTM Synchronous Serial Port (PL021) Technical Reference Manual;
Embedded Trace Macrocell Architecture Specification (ETM_Spec.PDF);
Multi-ICE System Design Consideration Applic.-Note 72 (DAI0072A_Multiicedesign-Notes.PDF);
IEEE Standard Test Access Port and Boundary-Scan Architecture (1149.1 IEEE Boundary Scan
2001.PDF);
IR35-107-3.pdf
LeadfreeIR50_60.pdf
Codeexpl.pdf
PHY_Data_Sheet.pdf
EB 200 Handbuch V1.1.0 (EB200_Handbuch_V110.PDF);
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
96
ERTEC 200 Handbuch
Version 1.1.0

Documentos relacionados