RTEC 400 E Handbuch

Transcrição

RTEC 400 E Handbuch
.
ERTEC 400
Enhanced Real-Time Ethernet Controller
Handbuch
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 1
ERTEC 400 Handbuch
Version 1.2.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
Seite 2
ERTEC 400 Handbuch
Version 1.2.0
Vorwort
Zielgruppe des Handbuchs
Dieses Handbuch ist für Hardwareentwickler gedacht, die den ERTEC 400 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 400 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 400.
o
Kapitel 2 ARM946E-S Prozessorsystem.
o
Kapitel 3 Bussystem des ERTEC 400.
o
Kapitel 4 Peripherie des ERTEC 400.
o
Kapitel 5 Allgemeine Hardwarefunktionen.
o
Kapitel 6 Externes Memory Interface (EMIF).
o
Kapitel 7 Local Bus Unit (LBU).
o
Kapitel 8 PCI-Interface.
o
Kapitel 9 Speicheraufteilung des ERTEC 400.
o
Kapitel 10 HW- Tools für Test, Trace und Debugging.
o
Kapitel 11 Begriffs- und Literaturverzeichnis.
Gültigkeitsbereich des Handbuchs.
Das vorliegende Handbuch ist gültig für folgendes Produkt:
ERTEC 400 ab Erzeugnisstand 01
Das Handbuch wird bei Bedarf aktualisiert. Den jeweils aktuellen Stand finden Sie im Internet unter
http://www.siemens.de/comdec.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 3
ERTEC 400 Handbuch
Version 1.2.0
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 angegebene EMail-Adresse 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
Seite 4
ERTEC 400 Handbuch
Version 1.2.0
Inhaltsverzeichnis
1
Einleitung ................................................................................................................................9
1.1 Einsatzgebiete des ERTEC 400 ............................................................................................................. 9
1.2 Features des ERTEC 400 ...................................................................................................................... 9
1.3 Aufbau des ERTEC 400 ......................................................................................................................... 10
1.4 Gehäuse des ERTEC 400...................................................................................................................... 11
1.5 Signal-Funktions-Beschreibung ............................................................................................................. 12
1.5.1 GPIO 0-31 und alternative Funktionen........................................................................................... 12
1.5.2 JTAG und Debug ........................................................................................................................... 13
1.5.3 Trace-Port...................................................................................................................................... 13
1.5.4 Clock und Reset ............................................................................................................................ 13
1.5.5 TEST-Pins ..................................................................................................................................... 13
1.5.6 EMIF, Boot/Config ......................................................................................................................... 14
1.5.7 PCI/LBU......................................................................................................................................... 16
1.5.8 RMII/MII ......................................................................................................................................... 18
1.5.9 Stromversorgung ........................................................................................................................... 19
2
ARM946E-S Prozessor...........................................................................................................21
2.1 Aufbau des ARM946E-S ........................................................................................................................ 21
2.2 Beschreibung des ARM946E-S.............................................................................................................. 22
2.3 Arbeitsfrequenz des ARM946E-S .......................................................................................................... 22
2.4 Cache-Struktur des ARM946E-S ........................................................................................................... 22
2.5 Tightly Coupled Memory (TCM) ............................................................................................................. 22
2.6 Memory Protection Unit (MPU) .............................................................................................................. 23
2.7 Bus-Interface des ARM946E-S .............................................................................................................. 23
2.8 ARM946E-S Embedded Trace Macrocell (ETM9).................................................................................. 23
2.9 ARM-Interrupt-Controller (ICU) .............................................................................................................. 23
2.9.1 Priorisierung der Interrupts ............................................................................................................ 24
2.9.2 Triggermodi.................................................................................................................................... 24
2.9.3 Maskierung der Interrupt-Eingänge ............................................................................................... 24
2.9.4 Software-Interrupts für IRQ............................................................................................................ 24
2.9.5 Nested Interrupt Struktur................................................................................................................ 24
2.9.6 EOI End-Of-Interrupt..................................................................................................................... 24
2.9.7 IRQ-Interrupt-Quellen .................................................................................................................... 25
2.9.8 FIQ-Interrupt-Quellen..................................................................................................................... 25
2.9.9 IRQ-Interrupts als FIQ-Interrupt-Quellen........................................................................................ 26
2.9.10 Interrupt-Control-Register .............................................................................................................. 26
2.9.11 ICU-Register Beschreibung ........................................................................................................... 27
2.10 ARM946E-S - Register........................................................................................................................... 31
3
Bussystem des ERTEC 400...................................................................................................32
3.1 Kommunikationsbus „Multi-Layer AHB“.................................................................................................. 32
3.1.1 AHB-Arbiter.................................................................................................................................... 32
3.1.2 AHB-Master-Slave-Kopplung......................................................................................................... 32
3.2 Peripheriebus APB ................................................................................................................................. 33
4
Peripherie am APB-Bus.........................................................................................................33
4.1 BOOT-ROM ........................................................................................................................................... 33
4.1.1 Booten von externem ROM ........................................................................................................... 34
4.1.2 Booten über SPI ............................................................................................................................ 34
4.1.3 Booten über UART1....................................................................................................................... 34
4.1.4 Booten über PCI oder LBU ............................................................................................................ 34
4.2 General Purpose IO (GPIO) ................................................................................................................... 35
4.2.1 Adressbelegung GPIO-Register .................................................................................................... 35
4.2.2 GPIO-Register Beschreibung ........................................................................................................ 36
4.3 Timer 0 und 1 ......................................................................................................................................... 37
4.3.1 Arbeitsweise der Timer .................................................................................................................. 38
4.3.2 Timer - Interrupts ........................................................................................................................... 38
4.3.3 Timer - Vorteiler ............................................................................................................................. 38
4.3.4 Kaskadierung der Timer................................................................................................................. 38
4.3.5 Adressbelegung Timer0/1-Register ............................................................................................... 38
4.3.6 Timer0/1-Register Beschreibung ................................................................................................... 39
4.4 F - Counter ............................................................................................................................................. 41
4.4.1 Adressbelegung F-Timer-Register ................................................................................................. 42
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 5
ERTEC 400 Handbuch
Version 1.2.0
4.4.2 F-Timer-Register Beschreibung..................................................................................................... 42
4.5 Watchdog-Timer..................................................................................................................................... 43
4.5.1 Watchdog-Timer 0 ......................................................................................................................... 43
4.5.2 Watchdog-Timer 1 ......................................................................................................................... 43
4.5.3 Watchdog-Interrupt ........................................................................................................................ 43
4.5.4 WDOUT0_N................................................................................................................................... 43
4.5.5 WDOUT1_N................................................................................................................................... 43
4.5.6 Watchdog-Register ........................................................................................................................ 44
4.5.7 Adressbelegung Watchdog-Register ............................................................................................. 44
4.5.8 Watchdog-Register Beschreibung ................................................................................................. 44
4.6 UART1/ UART2...................................................................................................................................... 46
4.6.1 Adressbelegung UART1/2-Register............................................................................................... 48
4.6.2 UART1/2-Register Beschreibung................................................................................................... 48
4.7 Synchrones Interface SPI....................................................................................................................... 52
4.7.1 Adressbelegung SPI-Register........................................................................................................ 53
4.7.2 SPI-Register Beschreibung............................................................................................................ 54
4.8 System-Control-Register ........................................................................................................................ 56
4.8.1 Adressbelegung System-Control-Register..................................................................................... 56
4.8.2 System-Control-Register Beschreibung......................................................................................... 57
5
Allgemeine Hardware Funktionen ........................................................................................63
5.1 Takterzeugung und Taktversorgung....................................................................................................... 63
5.1.1 Taktversorgung im ERTEC 400 ..................................................................................................... 63
5.1.2 Taktversorgung PCI ....................................................................................................................... 64
5.1.3 Taktversorgung LBU ...................................................................................................................... 64
5.1.4 Taktversorgung JTAG.................................................................................................................... 64
5.1.5 Taktversorgung Ethernetinterface.................................................................................................. 64
5.2 Resetlogik des ERTEC 400.................................................................................................................... 65
5.2.1 Hardware-Reset............................................................................................................................. 65
5.2.2 Watchdog-Reset ............................................................................................................................ 66
5.2.3 Software-Reset .............................................................................................................................. 66
5.2.4 PCI-Bridge-Reset........................................................................................................................... 66
5.2.5 Aktionen während aktiven HW-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.3.4 PCI-Slave Überwachung................................................................................................................ 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 Page-Control-Einstellung ....................................................................................................................... 76
7.3.1 LBU Read zum ERTEC400 mit separater Read-/Writeleitung (Ready low aktiv)........................... 77
7.3.2 LBU Write zum ERTEC400 mit separater Read-/Writeleitung (Ready low aktiv) ........................... 78
7.3.3 LBU Read zum ERTEC400 mit gemeinsamer Read-/Writeleitung (Ready low aktiv) .................... 79
7.3.4 LBU Write zum ERTEC400 mit gemeinsamer Read-/Writeleitung (Ready low aktiv) .................... 80
7.4 Adressbelegung LBU-Register ............................................................................................................... 81
7.5 LBU-Register Beschreibung................................................................................................................... 81
8
PCI-Interface ...........................................................................................................................83
8.1 PCI-Funktionalität................................................................................................................................... 83
8.1.1 Allgemein Funktionen des PCI-Interface:....................................................................................... 83
8.1.2 PCI-Master-Interface:..................................................................................................................... 83
8.1.3 PCI-Target-Interface: ..................................................................................................................... 84
8.1.4 PCI-Interrupt-Handling: .................................................................................................................. 84
8.1.5 PCI-Powermanagement:................................................................................................................ 85
8.1.6 Zugriffe auf den AHB-Bus: ............................................................................................................. 85
8.2 ERTEC 400 - Anwendungen mit PCI: .................................................................................................... 85
8.2.1 ERTEC 400 in einem PC-System .................................................................................................. 85
8.2.2 ERTEC 400 als Teilnehmer an lokalem PCI-Bus........................................................................... 86
8.3 Adressbelegung PCI-Register ................................................................................................................ 87
8.4 PCI-Register Beschreibung.................................................................................................................... 88
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 6
ERTEC 400 Handbuch
Version 1.2.0
9
Speicherbeschreibung ..........................................................................................................89
9.1 Speicheraufteilung des ERTEC 400....................................................................................................... 89
9.2 Detaillierte Speicherbeschreibung.......................................................................................................... 90
10
Test und Debugging...............................................................................................................92
10.1 Embedded Trace Macrocell ETM9 ........................................................................................................ 92
10.1.1 Tracemodis .................................................................................................................................... 92
10.1.2 Features des ETM9-Modul ............................................................................................................ 92
10.1.3 ETM9 – Register ............................................................................................................................ 92
10.2 Trace – Interface .................................................................................................................................... 93
10.3 JTAG – Schnittstelle............................................................................................................................... 93
10.4 Debugging über UART1 ......................................................................................................................... 93
11
Sonstiges ................................................................................................................................94
11.1 Abkürzungen/ Begriffsverzeichnis: ......................................................................................................... 94
11.2 Literaturverzeichnis: ............................................................................................................................... 95
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 7
ERTEC 400 Handbuch
Version 1.2.0
Abbildungsverzeichnis
Abbildung 1: ERTEC 400 Block-Diagramm ........................................................................................................... 10
Abbildung 2: ERTEC 400-Gehäusebeschreibung ................................................................................................. 11
Abbildung 3: Aufbau ARM946E-S Prozessorsystem ............................................................................................. 21
Abbildung 4: GPIO Zelle des ERTEC 400 ............................................................................................................. 35
Abbildung 5: Blockschaltbild des F-Counter .......................................................................................................... 41
Abbildung 6: Watchdog-Timing.............................................................................................................................. 43
Abbildung 7: Blockschaltbild UART ....................................................................................................................... 46
Abbildung 8: Blockschaltbild SPI ........................................................................................................................... 52
Abbildung 9: Detaildarstellung Clock-Unit ............................................................................................................. 64
Abbildung 10: Taktversorgung der Ethernetanschaltung....................................................................................... 65
Abbildung 11: Hochlaufphase der PLL .................................................................................................................. 65
Abbildung 12: LBU-Read-Sequenz bei separater RD-/WR-Leitung....................................................................... 77
Abbildung 13: LBU-Write-Sequenz bei separater RD-/WR-Leitung....................................................................... 78
Abbildung 14: LBU-Read-Sequenz bei gemeinsamer RD-/WR-Leitung ................................................................ 79
Abbildung 15: LBU-Write-Sequenz bei gemeinsamer RD-/WR-Leitung ................................................................ 80
Abbildung 16: PCI-Interrupt-Handling.................................................................................................................... 84
Tabellenverzeichnis
Tabelle 1: ERTEC 400 Pinbelegung und Signalbeschreibung............................................................................... 19
Tabelle 2: Übersicht IRQ-Interrupts ....................................................................................................................... 25
Tabelle 3: Übersicht FIQ-Interrupts ....................................................................................................................... 25
Tabelle 4: Übersicht Interrupt-Control-Register ..................................................................................................... 27
Tabelle 5: CP15 Register - Übersicht .................................................................................................................... 31
Tabelle 6: Übersicht AHB-Master-Slave Zugriffe ................................................................................................... 32
Tabelle 7: Zugriffsart und Datenbitbreite der Peripherie ........................................................................................ 33
Tabelle 8: Auswahl der Downloadquelle................................................................................................................ 34
Tabelle 9: Übersicht GPIO-Register ...................................................................................................................... 35
Tabelle 10: Übersicht Timer-Register .................................................................................................................... 38
Tabelle 11: Übersicht F-Timer-Register................................................................................................................. 42
Tabelle 12: Übersicht WD-Register ....................................................................................................................... 44
Tabelle 13: Baudraten UART bei FUARTCLK=50 MHz .............................................................................................. 47
Tabelle 14: Übersicht UART1/2-Register .............................................................................................................. 48
Tabelle 15: Übersicht SPI-Register ....................................................................................................................... 53
Tabelle 16: Übersicht System-Control-Register..................................................................................................... 57
Tabelle 17: Übersicht Takte des ERTEC 400........................................................................................................ 63
Tabelle 18: Übersicht EMIF-Register..................................................................................................................... 70
Tabelle 19: Einstellung verschiedener Pagegrößen .............................................................................................. 75
Tabelle 20: Einstellung verschiedener Offsetbereiche........................................................................................... 75
Tabelle 21: Übersicht der Zugriffe auf Adressbereiche von ERTEC 400............................................................... 76
Tabelle 22: Timing für LBU-Lesezugriffe mit separater Read-/Writeleitung........................................................... 77
Tabelle 23: Timing für LBU-Schreibzugriffe mit separater Read-/Writeleitung ...................................................... 78
Tabelle 24: Timing für LBU-Readzugriffe mit gemeinsamer Read-/Writeleitung.................................................... 79
Tabelle 25: Timing für LBU-Schreibzugriffe mit gemeinsamer Read-/Writeleitung ................................................ 80
Tabelle 26: Übersicht LBU-Register ...................................................................................................................... 81
Tabelle 27: Übersicht PCI-Register ....................................................................................................................... 88
Tabelle 28: Aufteilung der Speicherbereiche ......................................................................................................... 89
Tabelle 29: Detaillierte Beschreibung der Speichersegmente ............................................................................... 90
Tabelle 30: Steckerbelegung JTAG-Schnittstelle .................................................................................................. 93
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 8
ERTEC 400 Handbuch
Version 1.2.0
1
Einleitung
Der ERTEC 400 ist für die Realisierung von PROFINET Devices mit RT- und IRT-Funktionalität vorgesehen.
Mit seinem integrierten ARM946- Prozessor, dem integriertem 4-Port-Realtime-Ethernet-Switch und den
verschiedenen Möglichkeiten an einem selektierbaren Bussystem (PCI oder LBU) externe Host-ProzessorSysteme anzuschließen, bietet er alle Voraussetzungen für die Realisierung von PROFINET-Devices mit
integrierter Switch-Funktionalität.
1.1
ƒ
ƒ
ƒ
1.2
Einsatzgebiete des ERTEC 400
Anschaltung für hochgenaue Antriebsregelung, auch für PC-basierte Systeme
Dezentrale Peripherie mit realtimefähiger Ethernetanbindung.
PROFINET RT- und IRT-Funktionalität.
Features des ERTEC 400
Bei dem ERTEC 400 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
4-Port IRT Switch mit 192 kB Kommunikations-RAM
PCI-Interface zur Anbindung an ein PC-System (Bootfähig)
Local-Bus-Unit (LBU) zur Anbindung eines externen Hostprozessors (bootfähig)
SDRAM-Controller
SRAM-Controller
32 IO parametrierbar
2 x UART (UART1 bootfähig)
SPI (bootfähig)
2 x Timer
F-Timer
Watchdog
Interruptcontroller IRQ und FIQ
PLL mit Taktversorgung
8 kByte SRAM
8 kByte BOOT-ROM
304-Pin FBGA – Gehäuse
verschiedene Testfunktionen
JTAG-Debug- und Traceschnittstelle
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 9
ERTEC 400 Handbuch
Version 1.2.0
1.3
Aufbau des ERTEC 400
In der folgenden Abbildung sind die Funktionsgruppen mit den gemeinsamen Kommunikationswegen
dargestellt.
TracePort
JTAG / Debug
External Memory Interface
12,5MHz
REF_CLK
1
76
1
7
APB
Slave
Slave
MUX /Arb.
MUX/Arb.
Slave
BootROM
GPIO
2 x UART
(Advanced
Peripheral Bus)
Master
Reset
Test
100MHz
Slave
ETM
Slave
(8 kByte)
ARM9
clock
with
I-Cache (8kByte),
D-Cache (4kByte),
D-TCM (4kByte)
ARM InterruptController
SRAM
3
Slave
M em oryController
(EM IF)
1
ClockUnit
BSTAP
50MHz
ARM 946ES
50MHz
Input
stage
50 MHz/32Bit
Master
Slave
AHBW rapper
AHBW rapper
Slave
Master
32 Bit
Master
Master
(LBU)
(16 Bit)
SPI
Interface
MC-Bus (50MHz)
Slave
SC-Bus (50MHz)
Ports
(serielle
SS, SPI,
W atchdog)
7
IRT-PLLInterface
o
32 Bit
2 x Tim er,
W atchdog,
F-Tim er
System
Control
Register
t
s
K-SRAM
Switch Control
192 kByte
(32 Bit, 66M Hz)
Master-/Targetfähig
EthernetKanal
EthernetKanal
EthernetKanal
EthernetKanal
(Port 1)
(Port 2)
(Port 3)
(Port 4)
4 Port
Switch
3
7
7
7
7
52
REF_CLK
PCI-/Local Bus
Abbildung 1: ERTEC 400 Block-Diagramm
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
32
r
Slave
PCI
Bridge
Local
Bus Unit
P
MUX/Arb.
Slave
MUX/Arb.
P
Slave
Input
stage
AHB/APB
Bridge
Slave
Input
stage
M ulti-LayerAHB
Master
32 Bit
MUX/Arb.
Decode
Seite 10
ERTEC 400 Handbuch
Version 1.2.0
SMI
RMIIInterface
1.4
Gehäuse des ERTEC 400
Der ERTEC 400 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 400-Gehäusebeschreibung
Verarbeitungshinweise zum Löten des ERTEC 400 sind in folgenden Dokumenten beschrieben:
/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
Seite 11
ERTEC 400 Handbuch
Version 1.2.0
1.5
Signal-Funktions-Beschreibung
Pinbeschreibung ERTEC400
Der Ethernet-Kommunikations-Baustein ERTEC400 ist in einem 304–Pin FBGA–Gehäuse verfügbar. In diesem
Abschnitt werden die Signalnamen des ERTEC400 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 GPIORegistern 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.
Signalname
Alternative
Funktion 1
Alternative
Funktion 2
Alternative
Funktion 3
(5) IO
(Reset)
Pull-
PinNr.
Bemerkung
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
B (I)
up
up
up
up
up
up
up
up
T21
U21
V22
V21
N17
P19
R19
T19
GPIO (interruptfähig)
GPIO (interruptfähig)
GPIO
GPIO
GPIO
GPIO
GPIO
GPIO
GPIO oder UART1
oder ETM
GPIO oder UART1
oder ETM
GPIO oder UART1
oder ETM
GPIO oder UART1
oder ETM
GPIO oder UART1
oder ETM
GPIO oder UART2
GPIO oder UART2
GPIO oder UART2
oder Watchdog
GPIO oder UART2
oder SPI oder ETM
GPIO oder UART2
oder SPI
General Purpose I/O / Peripherie
1
2
3
4
5
6
7
8
GPIO0
GPIO1
GPIO2
GPIO3
GPIO4
GPIO5
GPIO6
GPIO7
9
GPIO8
TXD1
TRACEPKT0
B/O/-/O (I)
up
AA20
10
GPIO9
RXD1
TRACEPKT1
B/I/-/O (I)
up
AB20
11
GPIO10
DCD1_N
TRACEPKT2
B/I/-/O (I)
up
AA19
12
GPIO11
DSR1_N
TRACEPKT3
B/I/-/O (I)
up
AA18
13
GPIO12
CTS1_N
ETMEXTOUT
B/I/-/O (I)
up
W13
14
15
GPIO13
GPIO14
TXD2
RXD2
B/O (I)
B/I (I)
up
up
V15
U15
16
GPIO15
DCD2_N
WDOUT0_N
B/I/O (I)
up
W16
17
GPIO16
DSR2_N
SSPCTLOE
ETMEXTIN1
B/I/O/I (I)
up
AB14
18
GPIO17
CTS2_N
SSPOE
Reserviert
B/I/O/O (I)
up
AA14
19
GPIO18
SSPRXD
B/I (I)
up
W22
20
GPIO19
SSPTXD
TRACEPKT4
B/O/-/O (I)
up
AB18
21
GPIO20
SCLKOUT
TRACEPKT5
B/O/-/O (I)
up
AA17
22
GPIO21
SFRMOUT
TRACEPKT6
B/O/-/O (I)
up
AB17
23
GPIO22
SFRMIN
TRACEPKT7
B/I/-/O (I)
up
AA16
24
GPIO23
SCLKIN
DBGACK
B/I/-/O (I)
up
Y22
25
GPIO24
B/I (I)
up
AA11
26
GPIO25
B/O (I)
up
AA10
GPIO oder MC_PLL
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
GPIO oder SPI
GPIO oder SPI oder
ETM
GPIO oder SPI oder
ETM
GPIO oder SPI oder
ETM
GPIO oder SPI oder
ETM;
Bei SPI-Boot Æ GPIO
= Chip Select.
GPIO oder SPI (I)
oder ARM9
Debugging (O)
GPIO oder MC_PLL
B/O (I)
B/O (I)
B/O (I)
B/O (I)
up
up
up
up
AB10
W10
W9
V10
31
GPIO30
TGEN_OUT6_N
B/O (I)
up
V11
32
GPIO31
B (I)
up
V12
GPIO oder MC_PLL
GPIO oder MC_PLL
GPIO oder MC_PLL
GPIO oder MC_PLL
GPIO (interruptfähig)
oder MC_PLL
GPIO (interruptfähig)
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 12
ERTEC 400 Handbuch
Version 1.2.0
*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 EB400 bereits benutzt. Siehe dazu das Dokument /13/
Tabelle 9.
1.5.2
Nr.
JTAG und Debug
Signalname
IO
(Reset)
Pull-
PinNummer
Bemerkung
Debug / JTAG (BOUNDARY-SCAN)
33
34
35
36
37
38
TRST_N
TCK
TDI
TMS
TDO
DBGREQ
I (I)
I (I)
I (I)
I (I)
O (O)
I (I)
dn
V19
W19
W18
U19
V16
W21
39
TAP_SEL
I (I)
up
AB12
IO
(Reset)
Pull-
PinNummer
1.5.3
Nr.
up
up
up
JTAG – Reset
JTAG – Clock
JTAG – Data In
JTAG – Test Mode Select
JTAG – Data Out
ARM9 Debugging (PD)
Select TAP-Controller:
0: Boundary Scan-TAP-Contr.
selektiert
1: ARM-TAP-Controller selektiert
oder Scan Clock (Scan Mode)
Trace-Port
Signalname
Bemerkung
Trace-Port (Basic)
40
PIPESTA0
O (O)
Y21
41
PIPESTA1
O (O)
AA22
42
PIPESTA2
O (O)
AA21
43
TRACESYNC
O (O)
AB21
1.5.4
Nr.
Trace Pipeline Status(0)
Oder TEST_N=0: Test Input
Trace Pipeline Status(1)
Oder TEST_N=0: Test Input
Trace Pipeline Status(2)
Oder TEST_N=0: Test Input
Trace Sync Signal
Clock und Reset
Signalname
IO
(Reset)
Pull-
PinNummer
Bemerkung
CLOCK- / RESET-ERZEUGUNG
44
TRACECLK
O (O)
AB16
45
46
47
48
49
CLKP_A
CLKP_B
F_CLK
REF_CLK
RESET_N
Osc - I (I)
Osc - O (O)
I (I)
I (I)
I (I)
AA13
W12
AA12
R22
AA15
1.5.5
Nr.
up
ETM Trace Clock
Oder Scan Clock (Scan Mode)
Quarz-Anschluss
Quarz-Anschluss
F_CLK für F-Counter
Referenztakt für RMII
HW-Reset
TEST-Pins
Signalname
IO
(Reset)
Pull-
I
I
I
up
PinNummer
Bemerkung
TEST
50
51
52
TEST_N (3)
TMC1 (3)
TMC2 (3)
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
P17
R17
T18
Seite 13
Testmode
Testkonfiguration
Testkonfiguration
ERTEC 400 Handbuch
Version 1.2.0
1.5.6
Nr.
EMIF, Boot/Config
Signalname
Alternative
(5) IO
PullPinReset(Reset)
Nummer
Funktion
EMIF (External Memory Interface)
53
DTR_N
O (O)
U8
54
OE_DRIVER_N
O (O)
V8
55
A0
O (O)
B1
56
A1
O (O)
C2
57
A2
O (O)
C1
58
A3
O (O)
D2
59
A4
O (O)
D1
60
A5
O (O)
E2
61
A6
O (O)
F2
62
A7
O (O)
F1
63
A8
O (O)
G2
64
A9
O (O)
G1
65
A10
O (O)
H2
66
A11
O (O)
H1
67
A12
O (O)
J2
68
A13
O (O)
J1
69
A14
O (O)
E4
70
A15
O (O)
F5
71
A16
BOOT0 (1)
O (I)
F4
72
A17
BOOT1 (1)
O (I)
G4
73
A18
BOOT2 (1)
O (I)
J4
74
A19
CONFIG0 (2)
O (I)
H6
75
A20
CONFIG1 (2)
O (I)
H5
76
A21
CONFIG2 (2)
O (I)
J6
77
A22
CONFIG3 (2)
O (I)
J5
78
A23
CONFIG4 (2)
O (I)
K5
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 14
Bemerkung
Direction Signal für externen
Treiber oder Scan Clock (Scan
Mode)
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
Adress-Bit 13
SDRAM: Adress 11
Adress-Bit 14
SDRAM: Adress 12
Adress-Bit 15
Adress-Bit 16 /
ERTEC400 – Bootmode (ext.
PU/PD nötig)
Adress-Bit 17 /
ERTEC400 – Bootmode (ext.
PU/PD nötig)
Adress-Bit 18 /
ERTEC400 – Bootmode (ext.
PU/PD nötig)
Adress-Bit 19 /
ERTEC400 – SystemKonfiguration (ext. PU/PD nötig)
Adress-Bit 20 /
ERTEC400 – SystemKonfiguration (ext. PU/PD nötig)
Adress-Bit 21 /
ERTEC400 – SystemKonfiguration (ext. PU/PD nötig)
Adress-Bit 22 / ERTEC400 –
System- Konfiguration (ext.
PU/PD nötig)
Adress-Bit 23 / ERTEC400 –
System- Konfiguration (ext.
PU/PD nötig)
ERTEC 400 Handbuch
Version 1.2.0
Nr.
Signalname
Alternative
(5) IO
PullPinReset(Reset)
Nummer
Funktion
EMIF (External Memory Interface)
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
109
110
111
112
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
WR_N
RD_N
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)
O (O)
O (O)
113
CS_PER0_N
O (O)
AB8
114
115
116
117
118
119
120
121
122
123
124
125
126
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)
O (O)
O (O)
O (O)
O (O)
O (O)
AA7
W6
V6
N1
V1
L5
T4
AA8
L2
K2
K1
L4
M2
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
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
up
Seite 15
N2
P1
P2
R2
T1
T2
U2
V2
W1
W2
Y2
AA1
W4
AA2
AB2
AA3
N6
M5
N4
P5
R6
R4
R5
T5
V4
W5
AA4
AB4
AA5
AB5
AA6
AB6
AA9
AB9
Bemerkung
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
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 SDRAM
Chip Select SDRAM
RAS-Ltg. SDRAM
CAS-Ltg. SDRAM
RD/WR SDRAM
ERTEC 400 Handbuch
Version 1.2.0
1.5.7
PCI/LBU
Die Auswahl PCI- oder LBU-Interface erfolgt durch Einstellung des Konfigurations-Pins „Config2“ in der
Resetphase
Nr.
Signalname
PCI
Signalname
LBU
(5) IO
(Reset)
Pull-
PinNummer
Bemerkung
PCI-/LBU-Schnittstelle
127
AD00
LBU_DB00
B/B (I)
D4
128
AD01
LBU_DB01
B/B (I)
A2
129
AD02
LBU_DB02
B/B (I)
B2
130
AD03
LBU_DB03
B/B (I)
B3
131
AD04
LBU_DB04
B/B (I)
D5
132
AD05
LBU_DB05
B/B (I)
B4
133
AD06
LBU_DB06
B/B (I)
E7
134
AD07
LBU_DB07
B/B (I)
A4
135
CBE0_N
LBU_BE0_N
B/I (I)
D7
136
AD08
LBU_DB08
B/B (I)
B5
137
AD09
LBU_DB09
B/B (I)
D8
138
AD10
LBU_DB10
B/B (I)
B6
139
AD11
LBU_DB11
B/B (I)
E8
140
AD12
LBU_DB12
B/B (I)
A6
141
AD13
LBU_DB13
B/B (I)
E9
142
AD14
LBU_DB14
B/B (I)
B7
143
AD15
LBU_DB15
B/B (I)
F9
144
CBE1_N
LBU_BE1_N
B/I (I)
B8
145
PAR
LBU_WR_N
B/I (I)
E10
146
SERR_N
LBU_POL_RDY
B/I (I)
B9
147
PERR_N
LBU_RD_N
B/I (I)
A9
148
149
150
STOP_N
DEVSEL_N
TRDY_N
LBU_AB00
LBU_AB01
LBU_AB02
B/I (I)
B/I (I)
B/I (I)
D10
B10
D11
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 16
PCI: Adress-/Datenbit 0
LBU: Datenbit 0
PCI: Adress-/Datenbit 1
LBU: Datenbit 1
PCI: Adress-/Datenbit 2
LBU: Datenbit 2
PCI: Adress-/Datenbit 3
LBU: Datenbit 3
PCI: Adress-/Datenbit 4
LBU: Datenbit 4
PCI: Adress-/Datenbit 5
LBU: Datenbit 5
PCI: Adress-/Datenbit 6
LBU: Datenbit 6
PCI: Adress-/Datenbit 7
LBU: Datenbit 7
PCI: Byte 0 Enable
LBU: Byte 0 Enable
PCI: Adress-/Datenbit 8
LBU: Datenbit 8
PCI: Adress-/Datenbit 9
LBU: Datenbit 9
PCI: Adress-/Datenbit 10
LBU: Datenbit 10
PCI: Adress-/Datenbit 11
LBU: Datenbit 11
PCI: Adress-/Datenbit 12
LBU: Datenbit 12
PCI: Adress-/Datenbit 13
LBU: Datenbit 13
PCI: Adress-/Datenbit 14
LBU: Datenbit 14
PCI: Adress-/Datenbit 15
LBU: Datenbit 15
PCI: Byte 1 Enable
LBU: Byte 1 Enable
LBU-Mode: LBU_CFG=0: Write
Control (low active)
LBU_CFG=1: RD/WR-Control (0:
WR; 1: RD)
PCI-Mode: Bidirektion, Open
Drain ; ext. PU nötig; LBUMode: Einstellung der Polarität
für Pin;
LBU_RDY_N:
0: LBU_RDY_N low-aktiv
1: LBU_RDY_N high-aktiv
Input; statisch (Input-Wert darf
nach Powerup nicht verändert
werden).
LBU-Mode:
LBU_CFG=0: Read Control (low
active)
LBU_CFG=1: Keine Funktion
LBU: Adressbit 0
LBU: Adressbit 1
LBU: Adressbit 2
ERTEC 400 Handbuch
Version 1.2.0
Nr.
Signalname
PCI
Signalname
LBU
(5) IO
(Reset)
Pull-
PinNummer
Bemerkung
PCI-/LBU-Schnittstelle
151
152
IRDY_N
FRAME_N
LBU_AB03
LBU_AB04
B/I (I)
B/I (I)
A10
A12
153
CBE2_N
LBU_AB05
B/I (I)
A13
154
AD16
LBU_AB06
B/I (I)
B12
155
AD17
LBU_AB07
B/I (I)
B13
156
AD18
LBU_AB08
B/I (I)
E11
157
AD19
LBU_AB09
B/I (I)
A14
158
AD20
LBU_AB10
B/I (I)
E12
159
AD21
LBU_AB11
B/I (I)
B14
160
AD22
LBU_AB12
B/I (I)
E13
161
AD23
LBU_AB13
B/I (I)
B15
162
IDSEL
LBU_AB14
I/I (I)
D13
163
CBE3_N
LBU_AB15
B/I (I)
A16
164
AD24
LBU_AB16
B/I (I)
F14
165
AD25
LBU_AB17
B/I (I)
B16
166
AD26
LBU_AB18
B/I (I)
E14
167
AD27
LBU_AB19
B/I (I)
A17
168
AD28
LBU_AB20
B/I (I)
F15
169
AD29
LBU_SEG_0
B/I (I)
B17
170
AD30
LBU_SEG_1
B/I (I)
D14
171
AD31
LBU_CS_R_N
B/I (I)
B18
172
PME_N
LBU_RDY_N
B/O (I)
D16
173
REQ_N
LBU_CS_M_N
O/I (T)
A19
174
GNT_N
LBU_CFG
I /I (I)
D17
175
176
CLK_PCI
RES_PCI_N
-----
I /I (I)
I /I (I)
B19
E17
177
INTA_N
LBU_IRQ0_N
O/O (T)
D18
178
INTB_N
LBU_IRQ1_N
O/O (T)
B20
179
M66EN
---
B/I (I)
D19
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 17
LBU: Adressbit 3
LBU: Adressbit 4
PCI: Byte 2 Enable
LBU: Adressbit 5
PCI: Adress-/Datenbit 16
LBU: Adressbit 6
PCI: Adress-/Datenbit 17
LBU: Adressbit 7
PCI: Adress-/Datenbit 18
LBU: Adressbit 8
PCI: Adress-/Datenbit 19
LBU: Adressbit 9
PCI: Adress-/Datenbit 20
LBU: Adressbit 10
PCI: Adress-/Datenbit 21
LBU: Adressbit 11
PCI: Adress-/Datenbit 22
LBU: Adressbit 12
PCI: Adress-/Datenbit 23
LBU: Adressbit 13
PCI: IDSEL
LBU: Adressbit 14
PCI: Byte 3 Enable
LBU: Adressbit 15
PCI: Adress-/Datenbit 24
LBU: Adressbit 16
PCI: Adress-/Datenbit 25
LBU: Adressbit 17
PCI: Adress-/Datenbit 26
LBU: Adressbit 18
PCI: Adress-/Datenbit 27
LBU: Adressbit 19
PCI: Adress-/Datenbit 28
LBU: Adressbit 20
PCI: Adress-/Datenbit 29
LBU: Segment 0
PCI: Adress-/Datenbit 30 LBU:
Segment 1
PCI: Adress-/Datenbit 31 LBU:
Chip Select für Zugriffe auf
Paging-Konfigurations-Register
PCI-Mode: Open Drain; ext. PU
nötig
LBU-Mode : Ready-Signal;
Polarität abhängig von Input
LBU_POL_RDY; Output aktiv
während LBU_CS_R/M_N aktiv
ist;
LBU-Mode: Chip Select für
Zugriffe auf ERTEC400-interne
Resourcen
LBU-Mode:
0 : separate RD-/ WR-Leitung
1: LBU_WR_N hat Read/WriteControl
PCI-Bus-Clock
PCI-Bus-Reset
PCI-Mode: Open Drain, ext. PU
nötig
LBU-Mode: Kein Open Drain
PCI-Mode: Open Drain, ext. PU
nötig
LBU-Mode: Kein Open Drain
Auswahl PCI-Takt 66/33MHz
ERTEC 400 Handbuch
Version 1.2.0
1.5.8
Nr.
RMII/MII
Signalname
RMII
Signalname
MII
(5) IO
(Reset)
Pull-
PinNummer
Bemerkung
PHY-Management
180
181
182
SMI_MDC
SMI_MDIO
RES_PHY_N
SMI_MDC
SMI_MDIO
RES_PHY_N
O/O (O)
B/B (I)
O/O (O)
M18
N18
R21
SMI - Clock
SMI - Input/Output
Reset PHY
RMII-0/MII-0
183
TXD_P0(0)
TXD_P0(0)
O/O (O)
P22
184
TXD_P0(1)
TXD_P0(1)
O/O (O)
N21
185
RXD_P0(0)
RXD_P0(0)
I/I (I)
dn
N22
186
RXD_P0(1)
RXD_P0(1)
I/I (I)
dn
M21
187
TX_EN_P0
TX_EN_P0
O/O (O)
188
CRS_DV_P0
CRS_P0
I/I (I)
dn
H19
189
RX_ER_P0
RX_ER_P0
I/I (I)
dn
K18
P21
RMII: Transmit Data Port0 Bit0
MII: Transmit Data Port0 Bit0
RMII: Transmit Data Port0 Bit1
MII: Transmit Data Port0 Bit1
RMII: Receive Data Port0 Bit0
MII: Receive Data Port0 Bit0
RMII: Receive Data Port0 Bit1
MII: Receive Data Port0 Bit1
RMII: Transmit Enable Port0
MII: Transmit Enable Port0
RMII: Carrier Sense/Data Valid
Port0
MII: Carrier Sense Port0
RMII: Receive Error Port0
MII: Receive Error Port0
RMII-1/MII-0
190
TXD_P1(0)
TXD_P0(2)
O/O (O)
L22
191
TXD_P1(1)
TXD_P0(3)
O/O (O)
L21
192
RXD_P1(0)
RXD_P0(2)
I/I (I)
dn
K21
193
RXD_P1(1)
RXD_P0(3)
I/I (I)
dn
J21
194
TX_EN_P1
TX_ERR_P0
O/O (O)
195
CRS_DV_P1
RX_DV_P0
I/I (I)
dn
G19
196
RX_ER_P1
COL_P0
I/I (I)
dn
M22
197
198
-
RX_CLK_P0
TX_CLK_P0
I/I (I)
I/I (I)
dn
dn
K19
K17
M19
RMII: Transmit Data Port1 Bit0
MII: Transmit Data Port0 Bit2
RMII: Transmit Data Port1 Bit1
MII: Transmit Data Port0 Bit3
RMII: Receive Data Port1 Bit0
MII: Receive Data Port0 Bit2
RMII: Receive Data Port1 Bit1
MII: Receive Data Port0 Bit3
RMII: Transmit Enable Port1
MII: Transmit Error Port0
RMII: Carrier Sense/Data Valid
Port1
MII: Receive Data Valid Port0
RMII: Receive Error Port1
MII: Collision Port0
MII: Reveive Clock Port0
MII: Transmit Clock Port0
RMII-2/MII-1
199
TXD_P2(0)
TXD_P1(0)
O/O (O)
H21
200
TXD_P2(1)
TXD_P1(1)
O/O (O)
G22
201
RXD_P2(0)
RXD_P1(0)
I/I (I)
dn
F21
202
RXD_P2(1)
RXD_P1(1)
I/I (I)
dn
E22
203
TX_EN_P2
TX_EN_P1
O/O (O)
204
CRS_DV_P2
CRS_P1
I/I (I)
dn
G18
205
RX_ER_P2
RX_ER_P1
I/I (I)
dn
J18
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
H22
Seite 18
RMII/MII: Transmit Data Port2
Bit0
MII: Transmit Data Port1 Bit0
RMII: Transmit Data Port2 Bit1
MII: Transmit Data Port1 Bit1
RMII: Receive Data Port2 Bit0
MII: Receive Data Port1 Bit0
RMII: Receive Data Port2 Bit1
MII: Receive Data Port1 Bit1
RMII: Transmit Enable Port2
MII: Transmit Enable Port1
RMII: Carrier Sense/Data Valid
Port2
MII: Carrier Sense Port1
RMII: Receive Error Port2
MII: Receive Error Port1
ERTEC 400 Handbuch
Version 1.2.0
Nr.
Signalname
RMII
Signalname
MII
(5) IO
(Reset)
Pull-
PinNummer
Bemerkung
RMII-3/MII-1
206
TXD_P3(0)
TXD_P1(2)
O/O (O)
C22
207
TXD_P3(1)
TXD_P1(3)
O/O (O)
C21
208
RXD_P3(0)
RXD_P1(2)
I/I (I)
dn
B22
209
RXD_P3(1)
RXD_P1(3)
I/I (I)
dn
B21
210
TX_EN_P3
TX_ERR_P1
O/O (O)
211
CRS_DV_P3
RX_DV_P1
I/I (I)
dn
F19
212
RX_ER_P3
COL_P1
I/I (I)
dn
E21
213
214
-
RX_CLK_P1
TX_CLK_P1
I/I (I)
I/I (I)
dn
dn
H18
J17
1.5.9
D21
RMII: Transmit Data Port3 Bit0
MII: Transmit Data Port1 Bit2
RMII: Transmit Data Port3 Bit1
MII: Transmit Data Port1 Bit3
RMII: Receive Data Port3 Bit0
MII: Receive Data Port1 Bit2
RMII: Receive Data Port3 Bit1
MII: Receive Data Port1 Bit3
RMII: Transmit Enable Port3
MII: Transmit Error Port1
RMII: Carrier Sense/Data Valid
Port3
MII: Receive Data Valid Port1
RMII: Receive Error Port3
MII: Collision Port1
MII: Reveive Clock Port1
MII: Transmit Clock Port1
Stromversorgung
Nr.
SpannungsSignalname
IO
Pin-Nummer
Bemerkung
Stromversorgung
215 - 244
VDD Core
P
245 - 261
GND Core
P
262 - 280
VDD IO
P
281 - 296
GND IO
P
297 - 299
300
301
302
303
304
P5V_PCI (4)
AVDD
AGND
AVDD_PCI
AGND_PCI
TACT_N
P
P
P
P
P
B11, D6, D9, D15, E5, E18,
E19, F6, F17, H4, J19, K4,
L19, M4, N5, N19, P4, P18,
R18, U4, U6, U17, V5, V14,
V18, W7, W8, W14, W15,
W17
E6, F10, F16, G6, G17, K6,
L18, T17, U1, U5, U7, U9,
U13, U14, U18, V9, V17
A3, A5, A8, A11, A15, A18,
A20, E1, L1, R1, Y1, AB3,
AB7, AB11, AB15, AB19,
D22, J22, T22
A7, A21, E16, F7, F13, F18,
G5, K22, M1, P6, T6, U16,
U22, V7, V13, AB13,
F8, D12, E15
W11
U10
F22
G21
H17
SV CORE1,5 Volt
(30 Pins)
GND CORE
(17 Pins)
SV IO 3,3 Volt
(19 Pins)
GND IO
(16 Pins)
5 Volt VDD für PCI (3 Pins)
SV Analog 1,5 Volt
(1 Pin)
GND Analog
(1 Pin)
SV Analog-PCI 1,5 Volt (1 Pin)
GND Analog-PCI
(1 Pin)
Not Used
Tabelle 1: ERTEC 400 Pinbelegung und Signalbeschreibung
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 19
ERTEC 400 Handbuch
Version 1.2.0
Signalbeschreibung:
IO =
Signalrichtung aus der Sicht der Anwendung
I:
B:
Input
Bidirektional
O:
P:
Output
Power Supply
T:
Tri-State
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[2: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 [4:0] 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 kann offen bleiben.
(4) PCI-Betrieb: Die Pins P5V_PCI an PCI-Versorgungspins +Vio anschließen.
LBU-Betrieb: Die Pins P5V_PCI an +VDD IO anschließen.
(5) Die GPIOs[31:0], PCI-/LBU-Pins und RMII-/MII-Pins können verschiedene Funktionen beinhalten.
Entsprechend der ausgewählten Funktion haben die IO-Funktions-Pins unterschiedlich Beschaltung.
Beispiel IO-Funktion für GPIO:
B/O/-/I/ (I) Æ Funktion 0 = Bidirektional, Funktion 1 = Output, Funktion 2 = keine Funktion, Funktion 3 = Input,
(I) = IO-Funktion während RESET = Input
Beispiel IO-Funktion für PCI/LBU:
B/I/ (I) Æ PCI = Bidirektional, LBU = Input, (I) = IO-Funktion während RESET Æ Input
(I/O) = IO-Funktion während RESET Æ PCI=Input/LBU=Output
(Auswahl PCI/LBU erfolgt über CONFIG-Einstellung).
IO-Funktion RESET und IO-Funktion Betrieb sind identisch wenn kein Klammerwert vorhanden ist.
Beispiel:
O
Æ Funktion = Output, IO-Funktion während RESET = Output oder
I /I
Æ Funktion1 = Input, Funktion2 = Input, IO-Funktion während RESET = Input
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 20
ERTEC 400 Handbuch
Version 1.2.0
2
ARM946E-S Prozessor
Im ERTEC 400 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
Seite 21
ERTEC 400 Handbuch
Version 1.2.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[3] und CONFIG[4] während der Reset-Phase eingestellt. Die
Kommunikation mit den Komponenten des ERTEC 400 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öglicht 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
„Memory-Protection-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 400 ist ein 4kByte großes Daten-TCM (D-TCM) implementiert. Der
Speicher ist nach Reset gesperrt. Das D-TCM kann beliebig in den Adressraum des ARM946E-S gelegt werden
und muss zusammen mit einer Region der Memory-Protektion-Unit genutzt werden. Im D-TCM können die Daten
von schnellen Routinen 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
Seite 22
ERTEC 400 Handbuch
Version 1.2.0
2.6
Memory Protection Unit (MPU)
Die Memory-Protection-Unit erlaubt es dem 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. Sie muss 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 MultiLayer AHB-Bus. 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 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 InstructionTrace im ERTEC 400 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
10.1.
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. Zwei Interrupteingänge (FIQ6-7) werden intern belegt
und 6 Interrupteingänge (FIQ0-5) stehen für externe Ereignisse zur Verfügung. Für IRQ ist ein InterruptController für 16 Interrupteingänge realisiert. Von den 16 IRQ-Eingängen können zwei IRQ-Quellen zur
Verarbeitung als Fast-Interrupt_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
Seite 23
ERTEC 400 Handbuch
Version 1.2.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 Interrupt-Kontroll-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 LOCKREGRegister 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. Defaultmäßig ist für alle Interrupts die Betriebsart „Flankengetriggert“ mit
positiver Flanke parametriert. In der Betriebsart „Pegelgetriggert“ ist der aktive Pegel „High“.
Bei der Betriebsart „Flankengetriggert“ muss das Interrupt-Eingangssignal mindestens eine Taktperiode lang
anstehen. In der Betriebsart „Pegelgetriggert“ muss 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-InterruptRequest-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 InService-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 IRCLVEC-Register übergeben.
2.9.4
Software-Interrupts für IRQ
Jeder IRQ-Interrupt-Request kann durch Setzen des dem Eingangskanal entsprechenden Bit im SoftwareInterrupt-Register 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 (erfolgt im IRQACK- bzw. FIQACK-Register) wird das dem
physikalischen Eingang entsprechende Bit im Register ISREG bzw. FIQISR 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 ISREG- bzw FIQISR-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 gelöscht. Dies muss die CPU nach Bearbeitung der
entsprechenden Interrupt-Service-Routine an den Interrupt-Controller mit dem Befehl EOI mitteilen. Der EOIBefehl wird durch schreiben 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
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 24
ERTEC 400 Handbuch
Version 1.2.0
zurückgesetzt wird. Sind mehrer 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ückgesetzt
wurden. Danach können niederpriore 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-InterruptEingä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 angenommen durch Lesen des Register IRVEC/FIVEQ. 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 DebuggingFunktionen 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
Int.-Nr. Funktionsblock
Signalname
Defaulteinstellung
Anmerkung
0
Timer
TIM_INT0
Steigende Flanke
Timer 0
1
Timer
TIM_INT1
Steigende Flanke
Timer 1
3:2
GPIO
GPIO(1:0)
Parametriebar
externer Eingang ERTEC 400 GPIO[1:0]
5:4
GPIO
GPIO(31:30)
Parametriebar
6
ARM-CPU
COMM_Rx
Steigende Flanke
7
ARM-CPU
COMM_Tx
Steigende Flanke
8
UART_1
UART_INTR1
High Pegel
externer Eingang ERTEC 400 GPIO[31:30]
Debug Receive Communications-Channel
Interrupt
Debug Transmit CommunicationsChannel Interrupt
Sammel-Interrupt UART1
9
UART_2
UART_INTR2
High Pegel
Sammel-Interrupt UART2
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
IRT-Switch
IRQ0_IRT_API_ERR
Steigende Flanke
Synchronisationsfehler im IRT-API
(im IRT nicht maskierbar)
15
PCI
AHB_INT_L
Steigende Flanke
AHB-PCI-Bridge
Signalname
Defaulteinstellung
Anmerkung
Tabelle 2: Übersicht IRQ-Interrupts
2.9.8
FIQ-Interrupt-Quellen
Int.-Nr. Funktionsblock
0
Watchdog
Steigende Flanke
1
APB-Bus
Steigende Flanke
2
Multilayer AHB
Steigende Flanke
3
PLL-StatusRegister
Steigende Flanke
4
IRT-Switch
IRQ_IRT_END
Steigende Flanke
5
IRT-Switch
IRQ_LOW_WATER
Steigende Flanke
Zugriff auf nicht vorhandene Adresse am
APB (1)
Zugriff auf nicht vorhandene Adresse am
AHB (1)
Sammel-Interrupt von:
EMIF: Peripherie QVZ
PCI: Slave QVZ
PLL: Loss State
PLL: Lock State
siehe System-Control-Register
"PLL_STAT_REG"
Ende der IRT-Phase (im IRT nicht
maskierbar)
"Low-Water-Mark" ist unterschritten
6
wahlweise
wahlweise von IRQ
Steigende Flanke
default: IRQ0_SP
7
wahlweise
wahlweise von IRQ
Steigende Flanke
frei programmierbar von IRQ
Tabelle 3: Übersicht FIQ-Interrupts
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 25
ERTEC 400 Handbuch
Version 1.2.0
(1) Ein Zugriff auf nicht vorhandene Adressen wird von den einzelnen Funktionsgruppen des ERTEC 400
erkannt und löst einen Puls mit der Dauer Tp = 2/50MHz aus. Bei Auswertung dieses Interrupts ist der
angeschlossene FIQ-Eingang als flangengetriggerter Eingang zu parametrieren.
2.9.9
IRQ-Interrupts als FIQ-Interrupt-Quellen
Die Interrupts des FIQ-Interrupt-Controllers dienen zum Debugging, Überwachen der Adressraumzugriffe und für
hochpriore Switch-Funktionen.
Über den Interrupt Eingang FIQ 6 ist es möglich den hochprioren IRT-Interrupt IRQ0_SP als FIQ zu nutzen. Die
Auswahl der hochprioren Interruptquelle wird im IRQ0_SP Interrupt-Controller des IRT-Swich eingestellt.
Die IRQ-Interrupts Nr. 6 und 7 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-Interrupt-Quellen des UART oder des ICE-Kommunikations-Kanals auf die FIQ’s mit den Nummern 6
oder 7 mappt. Dadurch ist ein Debugging von Interruptroutinen möglich.
2.9.10 Interrupt-Control-Register
Mit den Interrupt-Control Registern wird die komplette Steuerung, Priorisierung und Maskierung der IRQ/FIQInterrupt-Controller eingestellt.
ICU (Basisadresse 0x5000_0000)
Register-Name Offsetadresse Adressbereich Zugriff Default
Beschreibung
IRVEC
0x0000
4 Byte
R
0x00000000
Interrupt Vector Register
FIVEC
0x0004
4 Byte
R
0x00000000
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
0x00000000
Interrupt Vector Register mit IRQ
Acknowledge
FIQACK
0x0018
4 Byte
R
0x00000000
Fast Interrupt Vector Register mit
FIQ Acknowledge
IRCLVEC
0x001C
4 Byte
W
0x----
Interrupt Request Clear Vector
MASKALL
0x0020
4 Byte
R/W
1
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
0x00000000
FIQ Request Register
FIQ_MASKREG
0x0054
4 Byte
R/W
0x000000FF
FIQ Interrupt Mask Register
IRREG
0x0058
4 Byte
R
0x00000000
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
Seite 26
ERTEC 400 Handbuch
Version 1.2.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
....
...
...
....
...
...
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
Bit-Nr
3:0
Name
IRVEC
31:4
Vektorkennung
FIVEC
Name
FIVEC
31:3
Vektorkennung
LOCKREG
Beschreibung
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
Name
LOCKPRIO
LOCKENABLE
Beschreibung
Addr.: 0x5000_0008
Default: 0x0000_0000
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
Default: 0x0000_0000
Priority Lock Register
Vorgabe einer Priorität zur Sperre nieder- und gleichpriorer Interrupt Requests
FIQ1SREG
Beschreibung
Addr.: 0x5000_0004
Fast Interrupt Vector Register
Nummer des höchstprioren anstehenden Fast Interrupt Request
Bit-Nr
2:0
Bit-Nr
3–0
7
Default: 0x0000_0000
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
Addr.: 0x5000_0000
Interrupt Vector Register
Eingang mit dem höchstprioren anstehenden Interrupt Request
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
Seite 27
ERTEC 400 Handbuch
Version 1.2.0
IRQACK
Beschreibung
Bit-Nr
3–0
31 - 4
R
Bit-Nr
2–0
31 – 3
R
Bit-Nr
3–0
7
Bit-Nr
0
W
Name
IRCLVEC
nicht genutzt
Bit-Nr
Bit-Nr
Name
MASKALL
Bit-Nr
2–0
7–3
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 gehoerigen
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: ----
Beschreibung
Binärcode der Eingangsnummer des zu loeschenden Requests
R/W
FIQEND
Beschreibung
Addr.: 0x5000_001C
Mask all Interrupts
Globale Sperre aller IRQ-Interrupteingaenge
IRQEND
Beschreibung
Default: 0x0000_0000
Interrupt Request Clear Vector
Direktes Loeschen eines Interrupt Requests im Interrupt Request Register
MASKALL
Beschreibung
Addr.: 0x5000_0018
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
Default: 0x0000_0000
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).
FIQACK
Beschreibung
Addr.: 0x5000_0014
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..FIQPR7
nicht genutzt
Beschreibung
Binärcode der Priorität
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 28
ERTEC 400 Handbuch
Version 1.2.0
FIQISR
R
Beschreibung
Bit.-Nr
7–0
Name
FIQISR
Name
FIQIRR
Beschreibung
Name
IRREG
Bit.-Nr
15 – 0
Default: 0x0000_00FF
Addr.: 0x5000_0058
Default: 0x0000_0000
Beschreibung
Interrupteingang 0 – 15
0=Interrupt Request inaktiv/1=Interrupt Request aktiv
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
Bit.-Nr
15 – 0
R/W
Interrupt Request Register
Speicherung der aufgetretenen Interrupt Requests
MASKREG
Beschreibung
Beschreibung
Eingänge 0 – 7 des FIQ-Interruptcontrollers
'0' = kein Request
'1' = Request ist aufgetreten
Name
FIQ_MASKREG
Beschreibung
Bit.-Nr
15 – 0
Default: 0x0000_0000
Interrupt-Mask-Register für FIQ
Freigabe/Sperre der FIQ-Interrupt-Eingaenge
IRREG
Beschreibung
Addr.: 0x5000_0050
FIQ Request Register
Anzeige der anhand einer positiven Flanke erkannten Fast Interrupt Requests
FIQ_MASKREG
Bit.-Nr
15 – 0
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
Default: 0x0000_0000
FIQ In Service Register
Anzeige der von der CPU bestätigten Fast Interrupt Requests
FIQIRR
Bit.-Nr
7–0
Addr.: 0x5000_004C
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
Seite 29
ERTEC 400 Handbuch
Version 1.2.0
EDGEREG
Beschreibung
Bit.-Nr
15 – 0
R/W
Beschreibung
R/W
Bit-Nr
3–0
Addr.: 0x5000_006C
Default: 0x0000_0000
Software Interrupt Register
Vorgabe von Interrupt Requests
Name
SWIRREG
PRIOREG 0
…
PRIOREG 15
Beschreibung
Default: 0x0000_0000
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
SWIRREG
Bit.-Nr
15 – 0
Addr.: 0x5000_0068
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
Seite 30
ERTEC 400 Handbuch
Version 1.2.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.
Die folgende Tabelle zeigt alle CP15-Register mit ihren Zugriffsmöglichkeiten.
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
Undefiniert
W/R
RAM/TAG-BIST-Test-Register (1)
Test-State-Register (1)
Cache-Debug-Index-Register (1)
Trace-Control-Register
15
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
Seite 31
ERTEC 400 Handbuch
Version 1.2.0
3
Bussystem des ERTEC 400
Der ERTEC 400 besitzt intern zwei unterschiedliche Busse.
ƒ
hochperformanten Kommunikationsbus (Multilayer AHB-Bus)
ƒ
Peripheriebus (APB-Bus)
Folgende Funktionsblöcke sind direkt am Multi-Layer AHB-Bus angeschlossen:
ƒ
ARM946E-S
(Master/Slave)
ƒ
IRT-Switch
(Master)
ƒ
LBU
(Master)
ƒ
PCI
(Master/Slave)
ƒ
Interrupt-Controller
(Slave)
ƒ
Lokales SRAM
(Slave)
ƒ
EMIF-Interface
(Slave)
Über eine AHB/APB-Bridge können die Master auf die restliche Peripherie zugreifen, die am niederperformanten
APB-Bus angeschlossen sind. Von den beiden Mastern PCI und LBU kann nur einer aktiv sein. Die Auswahl
erfolgt durch den Eingangspin CONFIG[2].
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 läuft mit einer Frequenz von 50 MHz und besitzt die Funktionalität des
ARM-AHB-Busses (siehe Dokument /4/ Kapitel 3). Durch Zusammenschaltung mehrerer AHB-Segmente im MultiLayer-AHB-Bus können 3 Master gleichzeitig auf verschiedene Slaves zugreifen. Von den beiden AHB-Mastern
PCI-Bridge und LBU ist immer nur einer aktiv. Die Einstellung des aktiven Teilnehmers erfolgt durch den
Hardwarepin CONFIG[2] während der Resetphase.
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-AHBBus 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 und PCI/LBU mit der
niedrigsten Priorität.
3.1.2
AHB-Master-Slave-Kopplung
Nicht jeder AHB-Master ist mit jedem AHB-Slave verbunden. In der folgenden Tabelle ist dargestellt welcher
AHB-Master mit welchem AHB-Slave kommunizieren darf.
AHB-Master-Slave-Kopplung
Slave
Master
ARM
APB
Slave 1
EMIF
Slave 2
PCI
Slave 3
IRT
Slave 4
Local RAM
Slave 5
INT-Control
Slave 6
X
X
X
X
X
X
X
X
IRT
PCI/LBU
X
X
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. PCI-Master und ARM-Master zeitversetzt auf
den gleichen IRT-Slave zugreifen wollen. In diesem Fall müsste der ARM-Master in einem „Wait“ verweilen bis
der PCI-Master den IRT-Slave wieder freigibt. Um dies zu Verhindern haben die beiden AHB-Master PCI/LBU
und 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 AHBMaster auf diesen Slave zugreifen.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 32
ERTEC 400 Handbuch
Version 1.2.0
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.
4
Peripherie am APB-Bus
Der Baustein ERTEC 400 besitzt mehrere Peripherie-IO-Funktionsblöcke. Diese sind am 32-Bit-Peripheriebus
APB angeschlossen. Auf die Peripherie können der ARM946E-S oder PCI/LBU – Interface zugreifen. Folgende
Peripherie ist verfügbar:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Boot-ROM 8kByte
GPIO 32-Bit (*)
UART1, UART2
SPI-Interface
Timer 0, Timer 1
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 Datenbitbreite 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
UNTERSTÜTZTE ZUGRIFFSARTEN
Bit 23:16
Bit 15:8
Bit 7:0
32 Bit
8 Bit
8 Bit
8 Bit
16 Bit
Funktionsblock
Timer, F-Counter,
Watchdog,
System-ControlRegister
Boot_Rom
8 Bit
GPIO
16 Bit
32 Bit
16 Bit
8 Bit
SPI
UART1/2
Tabelle 7: Zugriffsart und Datenbitbreite der Peripherie
Zugriffe auf nicht ausdekodierte Speicher- bzw. Registerbereiche lösen einen FIQ-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 400 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 400 drei
Eingänge BOOT[2: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 neuen geladenen Funktionen ausgeführt
werden.
Folgende Kriterien führen zu einem Bootvorgang:
•
HW-Reset
•
Watchdog-Reset
•
Software-Reset durch Setzen des Bits XRES_SOFT im Reset-Control-Register (System-ControlRegister-Bereich)
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 33
ERTEC 400 Handbuch
Version 1.2.0
Folgende Download-Modi werden unterstützt:
BOOT[2]
0
0
0
0
1
1
1
1
BOOT[1]
0
0
1
1
0
0
1
1
BOOT[0]
0
1
0
1
0
1
0
1
BEDEUTUNG
Externer ROM/NOR-Flash 8 Bit Datenbreite
Externer ROM/NOR-Flash 16 Bit Datenbreite
Externer ROM/NOR-Flash 32 Bit Datenbreite
Reserviert
Reserviert
SPI (z.B EEPROMS mit ser. Schnittstelle)
UART1 (Bootstrap – Methodik)
PCI-Slave- / LBU-Interface (von ext. Host)
Tabelle 8: Auswahl der Downloadquelle
ƒ
ƒ
ƒ
ƒ
Booten von NOR-Flash oder EEPROM mit 8/16/32-Bit Datenbreite über EMIF Peripheral-Bank0
(CSPER_0_N)
Booten von seriellen EEPROMS/Flashes über die SPI-Schnittstelle. Als Chip-Select für den seriellen BOOTROM wird die Steuerleitung GPIO[22] verwendet. Die Auswahl des Speichermediums erfolgt über
Steuerleitung GPIO[23].
Booten von PCI-Slaveinterface oder von einem Hostprozessorsysteme über den LBU-Bus.
Booten von UART1. Mit der Bootstrap-Methode wird zunächst eine Routine zur Bedienung der Seriellen
Schnittstelle heruntergeladen, die dann den eigentlichen Download des Programms steuert.
Während des Bootvorgangs ist der Adressbereich des Kommunikations-RAM von 0x10100000 bis 0x1010102F
für die Bootsequenz reserviert. Eine Parametrierung des IRT-Switch kann während der Bootsequenz nur im
Bereich 0x10101030 bis 0x1012FFFF erfolgen.
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.
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
Prinzipiell werden die seriellen Protokolle von Motorola, Texas Instrument und NSC unterstützt.
4.1.3
Booten über UART1
Beim Bootvorgang wird die UART-Schnittstelle auf eine feste Baudrate von 115200 Baud gesetzt. Der Bootloader
führt den seriellen Download des Second-Level-Loaders in das USER-RAM durch. Der USER-RAM wird auf die
Adresse 0x00000000 gemapped und der Second-Level-Loader gestartet. Dieser führt den Download der
Anwender-Firmware in die verschiedenen Speicherbereiche des ERTEC 400 durch und startet nach Beendigung
des Downloads die Firmware.
4.1.4
Booten über PCI oder LBU
Booten von Anwender-Software über PCI muss aktiv von einem externen PCI-Master ausgeführt werden. Dazu
wird beim Bootvorgang im ARM946E-S das PCI-Slave-Makro freigegeben. Damit kann die Anwender-SW vom
PCI-Master in die verschiedenen Speicherbereiche des ERTEC 400 geladen werden. Am Ende des
Datentransfers setzt der PCI-Master ein Kennungsbit im SRAM um dem ARM-Prozessor mitzuteilen, dass der
Download beendet ist.
Analog zum PCI-Boot kann ein externer Host einen Boot über die LBU durchführen. Der Unterschied liegt im
wesentlichen im größeren Speicherbereich der über die PCI-Anschaltung selektierbar ist.
Die Auswahl PCI/LBU erfolgt über das System-Control-Register CONFIG_REG.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 34
ERTEC 400 Handbuch
Version 1.2.0
4.2
General Purpose IO (GPIO)
Es stehen maximal 32 General Purpose Input/Output im ERTEC 400 zur Verfügung. Nach Reset sind diese als
GPIO-Eingänge eingestellt.
Die GPIO’s [31, 7 : 0] stehen immer als IO zur Verfügung, da keine zusätzlichen Funktionen parametrierbar sind.
Die GPIO’s [30 : 8] haben zusätzliche Funktionsmerkmale als Schnittstellen zu Watchdog, F-Counter, UART’s,
SPI, ETM und MC-PLL im IRT-Macro.
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 Richtung (Input oder Output) im Register „GPIO_IOCTRL“.
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. Eine Interruptgenerierung ist nur mit Input-Pegel
aktiv High, steigender oder fallender Flanke möglich (Parametrierung siehe Kapitel 2.9.11).
Die folgende Abbildung zeigt den Aufbau eines GPIO-Pins als normale I/O-Funktion oder als alternative Funktion.
Alternate Funktion 1,2,3 (falls Eingang)
GPIO
IN
Pin des
ERTEC400
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 des ERTEC 400
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.
GPIO
Register-Name
(Basisadresse 0x4000_2500)
Offsetadresse Adressbereich
Zugriff
Default
Beschreibung
GPIO_IOCTRL
0x0000
4 Byte
W/R
0xFFFFFFFF
Konfigurationsregister für GPIO
GPIO_OUT
0x0004
4 Byte
W/R
0x00000000
Outputregister für GPIO
GPIO_IN
0x0008
4 Byte
R
0x00000000
GPIO_PORT_MODE_L
0x000C
4 Byte
W/R
0x00000000
GPIO_PORT_MODE_H
0x0010
4 Byte
W/R
0x00000000
Inputregister für GPIO
Funktionsbelegung GBIO-Port
0..15
Funktionsbelegung GBIO-Port
16.31
Tabelle 9: Übersicht GPIO-Register
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 35
ERTEC 400 Handbuch
Version 1.2.0
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 IOs (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
19:18
21:20
23:22
25:24
27:26
29:28
31:30
Default: 0x0000_0000
Beschreibung
0: GPIO-Outputx = 0, 1: GPIO-Outputx = 1
R
Addr.: 0x4000_2508
Default: Portbelegung
Inputregister für General Purpose IOs (31:0)
Name
GPIO_IN[31:0]
GPIO_PORT_MODE_L
Beschreibung
Addr.: 0x4000_2504
Outputregister für General Purpose IOs (31:0)
Beschreibung
0: GPIO-Inputx = 0, 1: GPIO-Inputx = 1
W/R
Addr.: 0x4000_250C
Default: 0x0000_0000
Konfigurationsregister für GPIO-Port 0 .. 15
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);
Wenn das ETM9-Modul per Debug-SW aktiviert und als ETM-Port-Breite 4
bis 8Bit eingestellt ist, wird unabhängig vom Wert der
GPIO_PORT_MODE_L-Bits(17:16) die Funktion 3 (ETM: TRACEPKT(0)
eingestellt.
Diese gilt analog für die GPIO_PORT_MODE_L-Bits(23:18) und die ETMPins TRACEPKT(3:1).
GPIO9_PORT_MODE Port GPIO(9);
Siehe Hinweis bei Bits(17 :16)
GPIO10_PORT_MODE Port GPIO(10);
Siehe Hinweis bei Bits(17 :16)
GPIO11_PORT_MODE Port GPIO(11);
Siehe Hinweis bei Bits(17 :16)
GPIO12_PORT_MODE Port GPIO(12);
GPIO13_PORT_MODE Port GPIO(13);
GPIO14_PORT_MODE Port GPIO(14);
GPIO15_PORT_MODE Port GPIO(15);
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 36
ERTEC 400 Handbuch
Version 1.2.0
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
4.3
W/R
Addr.: 0x4000_2510
Default: 0x0000_0000
Konfigurationsregister für GPIO-Port 16 .. 31
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);
Wenn das ETM9-Modul per Debug-SW aktiviert und als ETM-Port-Breite 8
Bit eingestellt ist, wird unabhängig vom Wert der GPIO_PORT_MODE_HBits(7:6) die Funktion 3 (ETM: TRACEPKT(4) eingestellt.
Diese gilt analog für die GPIO_PORT_MODE_H-Bits(13:8) und die ETMPins TRACEPKT(7:5)
GPIO20_PORT_MODE Port GPIO(20);
Siehe Hinweis bei Bits(7 :6)
GPIO21_PORT_MODE Port GPIO(21);
Siehe Hinweis bei Bits(7 :6)
GPIO22_PORT_MODE Port GPIO(22);
Siehe Hinweis bei Bits(7 :6)
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);
Timer 0 und 1
Im ERTEC 400 sind zwei voneinander unabhängige Timer integriert. Sie können zur internen Überwachung von
diversen Softwareroutinen verwendet werden. Jeder Timer besitzt einen Interrupt-Ausgang, der am IRQ-InterruptController des ARM946 angeschlossen ist. Der Zugriff auf die Timer erfolgt immer 32-Bit breit.
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
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 37
ERTEC 400 Handbuch
Version 1.2.0
4.3.1
Arbeitsweise der Timer
Beide Timer 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-Interrupt-Controller ausgewertet werden.
Ist Reload-Mode = 0 dann hält der entsprechende Timer an.
Ist Reload-Mode = 1 dann wird der entsprechende Timer 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.
4.3.2
Timer - Interrupts
Der Timerinterrupt 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 TimerInterrupt 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.3
Timer - Vorteiler
Für jeden Timer steht ein 8 Bit Vorteiler zur Verfügung. Diese sind unabhängig voneinander einstellbar. Jeder
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
auch keine Statusbits. Die Vorteiler laufen immer im Reload-Mode.
4.3.4
Kaskadierung der Timer
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 muss bei kaskadierten Timer gesperrt werden. Bei Einstellung mit
Vorteiler wird der Vorteiler von Timer1 verwendet.
Der Anwender muss beim Auslesen des 64-Bit-Timers für die Konsistenz der Daten in seiner Software sorgen.
4.3.5
Adressbelegung Timer0/1-Register
Die Timer-Register sind 32-Bit breit. Ein Lesen oder Beschreiben der Timer-Register ist nur in 32-Bit-Zugriff
sinnvoll. Ein 8-Bit- oder 16-Bit-Zugriff 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
Reload-Register Timer 1
RELD1
0x000C
4 Byte
R/W
0x00000000
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
Tabelle 10: Übersicht Timer-Register
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 38
ERTEC 400 Handbuch
Version 1.2.0
4.3.6
Timer0/1-Register Beschreibung
CTRL_STAT0
Beschreibung
Bit-Nr
0
R/W
Name
Run/xStop *)
1
Load
2
Reload-Mode *)
3
4
5
Reserviert
Reserviert
Status
31-6
Reserviert
Achtung:
Default: 0x0000_0000
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
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
CTRL_STAT1
Beschreibung
Bit-Nr
0
Addr.: 0x4000_2000
Control/Status Register 0. Konfiguration und Control Bits für den Timer Nr. 0 .
R/W
Addr.: 0x4000_2004
Default: 0x0000_0000
Control/Status Register 1. Konfiguration und Control Bits für den Timer Nr. 1.
Name
Run/xStop *)
1
Load
2
Reload-Mode *)
3
4
Reserviert
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)
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 39
ERTEC 400 Handbuch
Version 1.2.0
5
Status
6
Kaskadierung
31-7
Achtung:
sind!
Reserviert
Die mit *) gekennzeichneten Bits gelten auch für die Timer 0, wenn die Timer kaskadiert
RELD0
RELD1
Beschreibung
Bit-Nr
31:0
R/W
R/W
Bit-Nr
0
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.
Name
Reload (31:0)
CTRL_PREDIV
Beschreibung
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)
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: Timer 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: Timer 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).
RELD_PREDIV
Beschreibung
Bit-Nr
7:0
15:8
31-16
R/W
Addr.: 0x4000_2014
Default: 0x0000_0000
Reload-Register für die 2 Vorteiler.
Name
Prediv (7:0)
Prediv (15:8)
Reserviert
Beschreibung
Reload-Wert des Vorteilers Nr. 0
Reload-Wert des Vorteilers Nr. 1
Keine Bedeutung (read=0)
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 40
ERTEC 400 Handbuch
Version 1.2.0
TIM0
TIM1
R
R
Beschreibung
Bit-Nr
31:0
4.4
Addr.: 0x4000_2018
Addr.: 0x4000_201C
Default: 0x0000_0000
Default: 0x0000_0000
Timer Register 0-1. Werte der Timer Nr. 0-1.
Name
Timer (31:0)
Beschreibung
Wert des Timers
F - Counter
Neben den Systemtimern ist im ERTEC 400 noch ein F-Counter integriert. Dieser Counter arbeitet unabhängig
vom Systemtakt und kann z.B. für fehlersichere Anwendungen genutzt werden. Der F-Counter wird über die
alternative Funktion „F_CLK“ am externen Eingang „BYP_CLK“ getriggert. Die externe Triggerung ist nicht
möglich, wenn der ARM946E-S im reservierten Testmode (Config[4:3] = 11) betrieben wird.
Folgende Signalpins stehen für den F-Counter am ERTEC 400 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 APBTakt 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 400 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 eine 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_50
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
Seite 41
ERTEC 400 Handbuch
Version 1.2.0
4.4.1
Adressbelegung F-Timer-Register
Die F-Timer-Register sind 32-Bit breit. Die Register dürfen nur mit 32-Bit Zugriffen gelesen oder beschrieben
werden.
F-Counter
Register-Name
(Basisadresse 0x4000_2700)
Offsetadresse Adressbereich
Zugriff
Default
Beschreibung
F-COUNTER-VAL
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
Beschreibung
F-CNT-RES (31:16) Oberes Wort des F-Counter-Reset (beliebiger Wert)
F-CNT-RES (15:0) Unteres Wort des F-Counter-Reset
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 42
ERTEC 400 Handbuch
Version 1.2.0
4.5
Watchdog-Timer
Im ERTEC 400 sind zwei Watchdog-Timer integriert. Die Watchdog-Timer sind zur 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 GPIO[15]-Pin 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 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
Der Ausgang WDOUT0_N ist nach Reset auf Low. Wird Watchdog-Timer0 in den RUN-Modus gesetzt und ist der
Timer-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 WatchdogTimer 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
Seite 43
ERTEC 400 Handbuch
Version 1.2.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 undefiniertem 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)
Zugriff
Default
Beschreibung
CTRL/STATUS
Offsetadresse Adressbereich
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 400
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 400
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
Seite 44
ERTEC 400 Handbuch
Version 1.2.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
Seite 45
ERTEC 400 Handbuch
Version 1.2.0
4.6
UART1/ UART2
Im ERTEC 400 sind zwei UART’s implementiert. Die Eingänge und Ausgänge der UART’s stehen als alternative
Funktion am GPIO-Port [13 : 9] (UART1) und GPIO-Port [18 : 14] (UART2) 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 die UART’s verwendet werden, stehen die Pins nicht mehr als normale IO’s
zur Verfügung. Die Baud-Raten-Generierung wird vom internen APB-Takt 50 MHz abgeleitet. Die Datenbitbreite
für Lesen/Schreiben am APB-Bus ist 8-Bit.
Folgende Signalpins stehen jeweils für UART1 und 2 am ERTEC 400 zur Verfügung:
•
•
•
Sendeleitung
Empfangsleitung
Hand-Shake
1 pro UART
1 pro UART
3 pro UART
TXD1/TXD2
RXD1/ RXD2
DCD1_N/DCD2_N
CTS1_N/CTS2_N
DSR1_N/DSR2_N
TM
Beide UART’s sind als ARM Prime Cell (PL010) Macros realisiert. Diese sind ä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
Jeder UART hat eine Interruptquelle:
•
UARTINTR 1
UART1 - Sammelinterrupt
•
UARTINTR 2
UART2 – Sammelinterrupt
Beide Interrupts stehen am IRQ-Interrupt-Controller des ARM946E-S zur Verfügung.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 46
ERTEC 400 Handbuch
Version 1.2.0
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 BaudRate-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 UART1 kann auch als BOOT-Medium verwendet werden, wenn z.B. Funktionen von einem externen PC in
den ERTEC 400 geladen und ausgeführt werden sollen. Die Selektion des BOOT-Mediums erfolgt durch die
Eingänge BOOT[2:0] während der aktiven Reset-Phase.
Die Einstellung der UART1-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 UART1 anwenderseitig nicht genutzt, so kann er auch als Debugschnittstelle benutzt werden.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 47
ERTEC 400 Handbuch
Version 1.2.0
4.6.1
Adressbelegung UART1/2-Register
Die UART-Register sind 8-Bit breit.
Register-Name
UART1
(Basisadresse 0x4000_2300)
UART2
(Basisadresse 0x4000_2400)
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
Reserved
0x0040 - 0x0098
Reserved for Test Purposes
0x009C - 0x00FF
Reserved for Future Extension
Tabelle 14: Übersicht UART1/2-Register
4.6.2
UART1/2-Register Beschreibung
UARTDR (1)
UARTDR (2)
Beschreibung
Bit.-Nr
7-0
R/W
R/W
Addr.: 0x4000_2300
Addr.: 0x4000_2400
Default: 0x-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 muss erst das UARTDR Daten-Register gefolgt vom UARTRSR FehlerRegister ausgelesen werden.
UARTRSR/UARTECR (1) R/W
UARTRSR/UARTECR (2) R/W
Beschreibung
Bit.-Nr
7-0
0
Addr.: 0x4000_2304
Addr.: 0x4000_2404
Default: 0x00
Default: 0x00
UART Receive Status Register (Read)
UART Receive Error Clear Register (Write)
Name
------- (Write)
Beschreibung
FE
Framing-Error = 1
(Read)
Framing-, Parity-, Break- und Overrun-Error werden gelöscht
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Empfangenes Zeichen hat kein gültiges Stop-Bit
Seite 48
ERTEC 400 Handbuch
Version 1.2.0
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
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
Fehler-Register ausgelesen werden. Erst mit dem Lesen des Daten-Registers wird das Fehler- Register
aktualisiert.
UARTLCR_H (1)
UARTLCR_H (2)
Beschreibung
Bit.-Nr
0
R/W
R/W
Addr.: 0x4000_2308
Addr.: 0x4000_2408
Default: 0x00
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
Bit.-Nr
7-0
Bit.-Nr
7-0
R/W
R/W
Addr.: 0x4000_230C
Addr.: 0x4000_240C
Default: 0x00
Default: 0x00
UART Line Control Register Middle-Byte Baud-Rate High-Byte Bit 15 - 8
Name
BAUD DIVMS
UARTLCR_L (1)
UARTLCR_L (2)
Beschreibung
5-Bit Data
6-Bit Data
7-Bit Data
8-Bit Data
Reserviert
Wert ist undefiniert
-------
UARTLCR_M (1)
UARTLCR_M (2)
Beschreibung
Parity-Überprüfung und – Generierung sind freigegeben.
Beschreibung
Baud-Rate-Divisor High-Byte
R/W
R/W
Addr.: 0x4000_2310
Addr.: 0x4000_2410
Default: 0x00
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:
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 49
ERTEC 400 Handbuch
Version 1.2.0
FUARTCLK
BAUDDIV = ------------------------- - 1
16 * Baud-Rate
Null als Devisor ist nicht gültig.
UARTLCR besteht aus 3 Bytes. 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.
UARTCR (1)
UARTCR (2)
Beschreibung
Bit.-Nr
0
R/W
R/W
Addr.: 0x4000_2314
Addr.: 0x4000_2414
Default: 0x00
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 (1)
UARTFR (2)
Beschreibung
Bit.-Nr
0
R
R
Interrupt ist freigegeben
Receive-Timout-Interrupt ist
Addr.: 0x4000_2318
Addr.: 0x4000_2418
Default: 0x9Default: 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
Seite 50
ERTEC 400 Handbuch
Version 1.2.0
UARTIIR/UARTICR (1)
UARTIIR/UARTICR (2)
Beschreibung
Bit.-Nr
0
R/W
R/W
Addr.: 0x4000_231C
Addr.: 0x4000_241C
Default: 0x00
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 (1)
UARTILPR (2)
Beschreibung
Bit.-Nr
7-0
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
R/W
Addr.: 0x4000_2320
Addr.: 0x4000_2420
Default: 0x00
Default: 0x00
UART IrDA Low Power Counter Register
(wird im ERTEC400 nicht unterstützt)
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
Seite 51
ERTEC 400 Handbuch
Version 1.2.0
4.7
Synchrones Interface SPI
Im ERTEC 400 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 Einbzw. 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-Raten-Generierung ist der APB-Takt mit 50 MHz. Die Datenbitbreite für Lesen/Schreiben ist 16Bit.
Folgende Signalpins stehen für das SPI-Interface am ERTEC 400 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.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 52
ERTEC 400 Handbuch
Version 1.2.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 (CPSDRV = 254, SCR = 255) bis
25MHz (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 400 geladen und ausgeführt werden sollen. Die Selektion des BOOT-Medium
erfolgt durch die Eingänge BOOT[2: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-Zugriffen
sinnvoll. Ein byteweises Beschreiben wird aber hardwaremäßig nicht abgefangen.
SPI
Register-Name
(Basisadresse 0x4000_2200)
Zugriff
Default
Beschreibung
SSPCR0
Offsetadresse Adressbereich
0x0000
2 Byte
R/W
0x0000
SSP Control Register 0
SSPCR1
0x0004
2 Byte
R/W
0x0000
SSP Control Register 1
SSPDR
0x0008
2 Byte
R/W
0x----
Rx/Tx-FIFO Daten Register
SSPSR
0x000C
2 Byte
R
0x0000
SSP Status Register
SSPCPSR
0x0010
2 Byte
R/W
0x0000
SSPIIR/SSPICR
0x0014
2 Byte
R/W
0x0000
0x0018 - 0x003C
SSP Clock Prescale Register
Int-Identifikation Register (Read),
Interrupt Clear Register (Write)
Reserved
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
Seite 53
ERTEC 400 Handbuch
Version 1.2.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
Seite 54
ERTEC 400 Handbuch
Version 1.2.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
Beschreibung
Bit.-Nr
15-0
Addr.: 0x4000_2208
Default: 0x----
SPI – Daten Register.
Name
DATA [15:0]
Beschreibung
Transmit/Receive FIFO
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
Beschreibung
Bit.-Nr
0
TNF
2
RNE
3
RFF
4
BSY
15-5
------------
Beschreibung
Transmit FIFO Empty
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
SSPCPSR
R/W
Beschreibung
SPI – Clock-Prescale-Register.
Bit.-Nr
7-0
15-5
Default: 0x0000
SPI – Status Register.
Name
TFE
1
Addr.: 0x4000_220C
Addr.: 0x4000_2210
Default: 0x0000
Name
CPSDVSR
Beschreibung
Clock-Prescale Devisor.
(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
Seite 55
ERTEC 400 Handbuch
Version 1.2.0
SSPIIR/SSPICR
Beschreibung
R/W
Addr.: 0x4000_2214
Default: 0x0000
SPI – Interrupt Identification Register (Read)
SPI – Interrupt Clear Register (Write)
Bit.-Nr
0
Name
RIS (Read)
1
TIS (Read)
2
RORIS (Read)
15-3
---------- (Read)
Read: Reserviert Wert ist undefiniert
15-0
---------- (Write)
Write: Receive-Overrun-Interrupt wird gelöscht ohne Rücksicht darauf ob
Daten gerade geschrieben werden.
4.8
Beschreibung
SPI Receive FIFO Service Request Interrupt Status
0 = SSPRXINTR ist nicht aktiv
1 = SSPRXINTR ist aktiv
SPI Transmit FIFO Service Request Interrupt Status
0 = SSPTXINTR ist nicht aktiv
1 = SSPTXINTR ist aktiv
SPI Receive FIFO Overrun Interrupt Status
0 = SSPRORINTR ist nicht aktiv
1 = SSPRORINTR ist aktiv
System-Control-Register
Die System-Control-Register sind ERTEC 400 spezifische Control-Register, die von PCI/LBU-Seite oder vom
ARM946 gelesen und beschrieben werden können. Eine Aufstellung und Adressbelegung aller System-ControlRegister und die genaue Beschreibung wird in den folgenden Kapiteln behandelt.
4.8.1
Adressbelegung System-Control-Register
Die System-Control-Register sind 32-Bit breit.
System-Control-Register
Register-Name
Offsetadresse Adressbereich
(Basisadresse 0x4000_2600)
Zugriff
Default
Beschreibung
ID_REG
0x0000
4 Byte
R
0x40260100
ID ERTEC 400
BOOT_REG
0x0004
4 Byte
R
0x----
Boot-Mode-Pins Boot[0:2]
CONFIG_REG
0x0008
4 Byte
R
0x----
RES_CTRL_REG
0x000C
4 Byte
W/R
0x00000100
RES_STAT_REG
0x0010
4 Byte
R
0x00000004
PLL_STAT_REG
0x0014
4 Byte
R/W
0x00070005
CLK_CTRL_REG
0x0018
4 Byte
W/R
0x00000001 Steuerregister für Takt ERTEC 400
0x001C
4 Byte
R
0x00000000
angeford. Powerstate des PCIHost
0x0020
4 Byte
R/W
0x00000000
aktueller Powerstate ERTEC 400
PME_REG
0x0024
4 Byte
R/W
0x00000000
Power-Management-Event PME
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.
PM_STATE_REQ_REG
PM_STATE_ACK_REG
PCI_RES_REQ
0x003C
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
4 Byte
R/W
Seite 56
ERTEC 400 Config-Pins
Config[0:4]
Steuerregister für Reset ERTEC
400
Statusregister für Reset ERTEC
400
Statusregister für PLL/FIQ3
Requestregister zum Stellen eines
0xFFFF0002
SW-Reset-Req an die PCI-Bridge
ERTEC 400 Handbuch
Version 1.2.0
PCI_RES_ACK
0x0040
4 Byte
R
0x00000000
ACK zur Anzeige eines
durchgeführten SW-Reset-Req
MEM_SWAP
0x0044
4 Byte
R/W
0x00000000
Memory Swapping in Segment 0
zwischen ROM und RAM
PCI_INT_CTRL
0x0048
4 Byte
R/W
0x00000000
Control PCI-Interrupts
M_LOCK_CTRL
0x004C
4 Byte
R/W
AHB-Master-Lock-Enable.
0x00000000 Masterselektive Freigabe der AHBLock-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
---------
0x0058
76 Byte
Reserviert
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
Bit-Nr
31..3
2 .. 0
Name
ERTEC400-ID
HW-RELEASE
METALL-FIX
Bit-Nr
31..5
4 .. 0
Beschreibung
ERTEC 400-Kennung: 4026h (entspricht der Device ID der AHB-PCI-Bridge)
HW-Release: 01h
Metall-Fix: 00h
R
Addr.: 0x4000_2604
Default: Bootpins[2:0]
Boot-Mode-Pins BOOT(2:0) lesbar.
Name
---BOOT[2:0]
CONFIG_REG
Beschreibung
Default: 0x4026_0100
Identification ERTEC 400.
BOOT_REG
Beschreibung
Addr.: 0x4000_2600
Beschreibung
Reserviert
Lesen von BOOT[2:0] Pin
R
Addr.: 0x4000_2608
Default:Configpins[4:0]
ERTEC 400-Config-Pins CONFIG(4:0) lesbar.
Name
---CONFIG[4:0]
Beschreibung
Reserviert
Lesen von CONFIG[4:0] Pin
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 57
ERTEC 400 Handbuch
Version 1.2.0
RES_CTRL_REG
Beschreibung
W/R
Name
31..10
----
9
XRES_PCI_STATE
8
XRES_PCI_AHB_SOFT
7:3
PULSE_DUR
2
----
1
XRES_SOFT
0
WD_RES_FREI
Beschreibung
Reserviert
RES_STAT_REG
Bit-Nr
31..3
2
1
0
Status des PCI-Resets (nur lesbar)
0 : PCI-Reset ist aktiv
1: PCI-Reset ist inaktiv
SW-Reset für die AHB-Seite der PCI-AHB-Bridge.
0: Reset aktiv
1: Reset inaktiv
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 .. 31)
Reserviert Muss mit 0 belegt werden
1: Software Reset auslösen (nicht speichernd)
0: Software Reset nicht aktiv
1: Freigabe Watchdog Reset
R
Addr.: 0x4000_2610
Default: 0x0000_0004
Statusregister für Reset des ERTEC 400.
Es ist immer nur das Bit des zuletzt aufgetretenen Reset-Ereignisses gesetzt. Die beiden
anderen Bits sind zurückgesetzt.
Name
Beschreibung
---Reserviert
HW_RESET
1: Letzter Reset war Hardware – Reset
SW_RESET
1: Letzter Reset war Reset über Software-Reset
WD_RESET
1: Letzter Reset war Reset über Watchdog
PLL_STAT_REG
Beschreibung
R/W
Addr.: 0x4000_2614
Default: 0x0007_0005
Statusregister für PLL des ERTEC 400 und InterruptControl für FIQ3.
Bit-Nr
31..19
Name
----
18
INT_MASK_QVZ_PCI
_SLAVE
17
INT_MASK_LOSS
16
Default: 0x0000_0100
Steuerregister für Reset des ERTEC 400.
Bit-Nr
Beschreibung
Addr.: 0x4000_260C
INT_MASK_LOCK
15..6
----
5
INT_QVZ_EMIF_
STATE
4
INT_QVZ_PCI_
STATE
Beschreibung
Reserviert
Interrupt-Maskierung für INT_QVZ_PCI_SLAVE_STATE
0: Interrupt ist freigegeben
1: Interrupt ist maskiert
schreib-/lesbar
Interrupt-Maskierung für INT_LOSS_STATE
0: Interrupt ist freigegeben
1: Interrupt ist maskiert
schreib-/lesbar
Interrupt-Maskierung für INT_LOCK_STATE
0: Interrupt ist freigegeben
1: Interrupt ist maskiert
schreib-/lesbar
Reserviert
Interrupt Quittungsverzug am EMIF:
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.
Interrupt Quittungsverzug am PCI-Slave:
0: Interrupt-Request ist inaktiv
1: Interrupt-Request ist aktiv
Schreib-/lesbar
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 58
ERTEC 400 Handbuch
Version 1.2.0
3
INT_LOSS_STATE
2
INT_LOCK_STATE
1
PLL_INPUT_CLK_LO
SS
0
PLL_LOCK
CLK_CTRL_REG
Beschreibung
Name
----
0
CLK_CTRL
PM_STATE_REQ_REG
Bit-Nr
31: 2
1:0
W/R
Bit-Nr
31:2
1:0
Default: 0x0000_0001
Beschreibung
Reserviert
Freigabe des AHB-Taktes für die PCI-Bridge.
0: Takt ist gesperrt
1: Takt ist freigegeben
R
Addr.: 0x4000_261C
Default: 0x0000_0000
Angefordeter Powerstate des PCI-Hosts
Name
---PM_STATE_REQ
Beschreibung
Reserviert
angefordeter Powerstate des PCI-Hosts
PM_STATE_ ACK_REG R/W
Beschreibung
Addr.: 0x4000_2618
Steuerregister für Takt des ERTEC 400
Bit-Nr
31..1
Beschreibung
Interrupt 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:
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
Addr.: 0x4000_2620
Default: 0x0000_0000
aktueller Powerstate des ERTEC 400
Name
---PM_STATE_ACK
Beschreibung
Reserviert
aktueller Powerstate des ERTEC 400
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 59
ERTEC 400 Handbuch
Version 1.2.0
PME_REG
Beschreibung
R/W
Name
----
0
PME
Beschreibung
Reserviert
Power management Event.
Durch Setzen (steigende Flanke) dieses Bits kann das PCI-Signal PME_N
aktiviert werden. Dazu muss allerdings das Bit PME_ENABLE im
Konfigurations-Register Power-Management der AHB-PCI-Bridge gesetzt
sein (siehe /3/).
QVZ_AHB_ADR
Beschreibung
Name
QVZ_AHB_ADR
Beschreibung
Name
---HBURST
HSIZE
0
HWRITE
QVZ_AHB_M
Bit-Nr
31:0
Bit-Nr
31:0
R
Addr.: 0x4000_262C
Default: 0x0000_0000
Beschreibung
Reserviert
HBURST
HSIZE
HWRITE
0: HREAD
1: HWRITE
Addr.: 0x4000_2630
Default: 0x0000_0000
Masterkennung einer Fehladressierung am Multi-Layer-AHB
Name
---QVZ_AHB_IRT
QVZ_AHB_LBU/PCI
QVZ_AHB_ARM946
Beschreibung
Reserviert
IRT
LBU/PCI
ARM946
R
Addr.: 0x4000_2634
Default: 0x0000_0000
Adresse einer Fehladressierung am APB
Name
QVZ_APB_ADR
QVZ_EMIF_ADR
Beschreibung
Default: 0x0000_0000
Beschreibung
Adresse
R
QVZ_APB_ADR
Beschreibung
Addr.: 0x4000_2628
Control-Signale einer Fehladressierung am Multi-Layer-AHB
Bit-Nr
31:7
6:4
3:1
Bit-Nr
31:3
2
1
0
R
Adresse einer Fehladressierung am Multi-Layer-AHB
QVZ_AHB_CTRL
Beschreibung
Default: 0x0000_0000
Power-Management-Event PME
Bit-Nr
31:1
Bit-Nr
31:0
Addr.: 0x4000_2624
Beschreibung
Adresse
R
Addr.: 0x4000_2638
Default: 0x0000_0000
Adresse die zum QVZ am EMIF führte
Name
QVZ_EMIF_ADR
Beschreibung
Adresse
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 60
ERTEC 400 Handbuch
Version 1.2.0
PCI_RES_REQ
Beschreibung
Bit-Nr
31:16
15:2
1
0
Beschreibung
Anzahl der AHB-Takte, die an der AHB-PCI-Bridge auf Response gewartet
MAX_DELAY_PCI
wird bevor ein QVZ ausgelöst wird.
---Reserviert
Freigabe der QVZ-Überwachung von AHB-Zugriffen auf die PCI-Bridge
PCI_QVZ_EN
0: Überwachung inaktiv
1: Überwachung aktiv
Anforderung eines Softrequest an die PCI-Bridge
PCI_SOFT_RES_REQ 0: Request inaktiv
1: Request aktiv
Addr.: 0x4000_2640
Default: 0x0000_0000
Name
----
Beschreibung
Reserviert
Anzeige eines durchgeführten Softresets durch die PCI-Bridge
PCI_SOFT_RES_ACK 0: Request wurde nicht durchgeführt
1: Request wurde durchgeführt
Beschreibung
R/W
Addr.: 0x4000_2644
Default: 0x0000_0000
Memory Swapping in Segment 0 zwischen ROM und RAM
Bit-Nr
31:1
Name
----
0
MEM_SWAP
PCI_INT_CTRL
Bit-Nr
31:2
1
0
R
Acknowledgeregister zur Anzeige eines durchgeführten Softreset Requests
MEM_SWAP
Beschreibung
Default: 0xFFFF_0002
Name
Beschreibung
0
Addr.: 0x4000_263C
Requestregister zum Stellen eines Softreset-Requests an die PCI-Bridge
PCI_RES_ACK
Bit-Nr
31:1
R/W
Beschreibung
Reserviert
Auswahl des Speichers in Segment 0:
0: Boot-ROM ab Adr 0h
1: internes User-RAM ab Adr 0h
R/W
Addr.: 0x4000_2648
Default: 0x0000_0000
Control der PCI-Interrupts
Name
---PCI_INT_CTRL[1]
PCI_INT_CTRL[0]
Beschreibung
Reserviert
PCI_INT_CTRL = 0x0000_0001 IRQ0_HP Æ SERR_N
PCI_INT_CTRL = 0x0000_0000 IRQ0_HP Æ INTB_N
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 61
ERTEC 400 Handbuch
Version 1.2.0
M_LOCK_CTRL
Beschreibung
R/W
Name
----
3
ARB_MODE
2
LOCK_ENA_IRT
1
LOCK_ENA_PCI/LBU
0
LOCK_ENA_ARM946
ARM9_CTRL
Bit-Nr
31:14
13
12
11
10
9
8:0
Default: 0x0000_0000
AHB-Master-Lock-Enable. Master-selektive Freigabe der AHB-Lock-Funktionalität.
Bit-Nr
31:4
Beschreibung
Addr.: 0x4000_264C
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 PCI/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- und ETM-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
BIGENDIAN
BIGENDIAN (nur lesbar)
DisableGateTheClk:
DISABLE_GATE_THE 1: ARM9-Prozessor-Takt läuft frei
CLK
0: ARM9-Prozessor-Takt wird durch Wait-for-Interrupt
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
INITRAM
0: TCMs disabled
Dieses Bit wird nur durch den externen Reset RESET_N zurückgesetzt. SWund Watchdog-Reset haben keine Wirkung auf dieses Bit.
SYSOPT(8:0): zeigt die implementierten ETM-Optionen an.
SYSOPT[8:0]
Nähere Informationen: siehe /19/.
Default-Wert: 139H
ARM9_WE
Beschreibung
R/W
Addr.: 0x4000_2654
Default: 0x0000_0000
Schreibschutz-Register für das Register ARM9_CTRL.
Bit-Nr
31:1
Name
----
0
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
Seite 62
ERTEC 400 Handbuch
Version 1.2.0
5
Allgemeine Hardware Funktionen
5.1
Takterzeugung und Taktversorgung
Das Taktsystem des ERTEC 400 besteht im Wesentlichen aus vier Taktsystemen die durch asynchrone
Übergänge voneinander entkoppelt sind:
•
ARM946E-S zusammen mit AHB-Bus, APB-Bus und IRT
•
JTAG-Schnittstelle
•
PCI-Bus
•
RMII/MII – Anschaltung der Ethernet MAC’s
5.1.1
Taktversorgung im ERTEC 400
Die benötigten Takte werden im ERTEC 400 mittels interner PLL und/oder durch direkte Einspeisung erzeugt.
Eine genaue Aufstellung der Takte zeigt die folgende Tabelle:
MODUL
ARM946ES
AHB/EMIF/ICU
IRT (außer MII/RMII)
APB
JTAG
PCI
MII/RMII
TAKTQUELLE
PLL
PLL
PLL
PLL
JTAG-Clock
PCI-Clock
RX-/TX-Clock (MII)
REF_CLK (RMII)
FREQUENZ
50/100/150MHz (skalierbar)
50MHz
50/100MHz
50MHz
0-10MHz
0-66MHz
25MHz (MII)
50MHz (RMII)
Tabelle 17: Übersicht Takte des ERTEC 400
Im ERTEC 400 werden vor allem die synchronen Takte CLK_50MHz und CLK_100MHz verwendet. Diese Takte
werden mit einer internen PLL erzeugt, die wiederum von einem Quarz oder Oszillator versorgt wird.
Mit dem Konfigurationspin CONFIG0 wird der Eingangstakt ausgewählt:
CONFIG0 = 0
Æ
Eingangstakt wird mit einem Quarz über Pin CLKP_A, CLKP_B eingespeist.
CONFIG0 = 1
Æ
Eingangstakt wird mit Oszillatortakt über Pin REF_CLK eingespeist.
Bei einer Direkteinspeisung am Pin REF_CLK kann mit dem Konfigurationspin CONFIG1 die Taktfrequenz
eingestellt werden:
CONFIG1 = 0
Æ
Eingangstakt 50 MHz.
CONFIG1 = 1
Æ
Eingangstakt 25 MHz.
Die PLL generiert die beiden Systemtakte CLK_50MHz und CLK_100MHz und zusätzlich den Takt für den
ARM946E-S. Dieser Takt kann mit den Konfigurationspins CONFIG3 und CONFIG4 skaliert werden:
CONFIG4, CONFIG3 = 00 Æ
ARM946 Prozessortakt 50 MHz.
CONFIG4, CONFIG3 = 01 Æ
ARM946 Prozessortakt 100 MHz.
CONFIG4, CONFIG3 = 10 Æ
ARM946 Prozessortakt 150 MHz.
CONFIG4, CONFIG3 = 11 Æ
Reserviert.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 63
ERTEC 400 Handbuch
Version 1.2.0
Die folgende Abbildung zeigt den Aufbau die Clock-Unit mit den einzelnen Eingangs- und Ausgangstakten.
CONFIG4
CONFIG0
BYPASS_CLK
100MHz
CLKA
12,5 MHz
(PLL-Bypass: 100MHz)
CLKB
BYPASS_CLK_IN
OSC
MUX
PLL_IN
(12,5 MHz)
APLL
0
2
PLL_OUT
(300 MHz)
CLK_IN
12,5 MHz
Clock
Generation
0
1 MUX
0
1 MUX
0
REF_CLK
25/50MHz
HCLKEN
(ARM9)
HCLKENGen.
CONFIG3
Lock-Timer
Power-up
(650us)
Divider
1:4
Lock
Enable
1
1 MUX
CLK_ARM
CLK_50
CLK_100
MUX
Divider
1:2
MUX
Lock Monitor
PLL_LOCK_STATE
CONFIG1
SCAN_CLK(3:0)
(TRACEPKT(3:0))
3
Clock_unit_v2.ppt
SCANMODE
Abbildung 9: Detaildarstellung Clock-Unit
5.1.2
Taktversorgung PCI
Die Taktversorgung der AHB-PCI-Bridge erfolgt über zwei unterschiedliche Takteingänge:
•
Über den externen Pin CLK_PCI mit einer Frequenz 33MHz oder 66MHz.
•
über den internen Takt CLK_50MHz per SW über das System-Control-Register CLK_CTRL_REG
Nach Powerup-Reset ist der AHB-Clock CLK_50MHz freigegeben.
5.1.3
Taktversorgung LBU
Im LBU-Mode wird der AHB-Clock CLK_50MHz für die LBU-Taktversorgung aktiviert. Im PCI-Mode ist die
Taktversorgung für die LBU gesperrt.
Im LBU-Mode wird empfohlen den AHB-Clock für die PCI-Bridge zu sperren.
Die Modeauswahl PCI oder LBU erfolgt mit den Konfigurationspins CONFIG2.
CONFIG2 = 0
Æ
LBU-Mode.
CONFIG2 = 1
Æ
PCI-Mode.
5.1.4
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.5
Taktversorgung Ethernetinterface
Bei den Ethernetports wird zwischen zwei Anschaltungen zu den PHY-Bausteinen unterschieden:
•
MII-Betrieb
= 2 Ethernet-Ports an 2 MII-PHYs
•
RMII-Betrieb
= 4 Ethernet-Ports an 4-fach RMII-PHY
Im RMII Betrieb werden die Ethernetports und die PHYs vom Systemclock CLK_50MHz versorgt. Die
Kommunikation zwischen den ERTEC-Port und den PHYs erfolgt synchron.
Im MII-Betrieb werden die beiden PHYs mit einem PHY-Clock 25MHz versorgt. Der Takt für die Ethernetports des
ERTEC 400 wird von den MII-PHYs über die Taktleitungen RX_CLK und TX_CLK eingespeist.
Der Clock für die Ethernetports wird über das Clock-Control-Register im IRT-Switch aktiviert/gesperrt.
Die folgende Abbildung zeigt die beiden unterschiedlichen Ethernet Betriebsarten mit der Taktversorgung.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 64
ERTEC 400 Handbuch
Version 1.2.0
ERTEC400
RMII-Betrieb
(Anschaltung über RMII an 4Port PHY
ERTEC400
MII-Betrieb
(Anschaltung über MII an zwei
1-Port PHYs
Ethernetport
0
Ethernetport
1
Ethernetport
2
Ethernetport
3
Buffer
Buffer
Buffer
Buffer
Buffer
Buffer
Buffer
Buffer
RMII
RMII
RMII
RMII
MII
MII
RMII
RMII
PHY0
(RMII)
PHY1
(RMII
PHY2
(RMII)
PHY3
(RMII)
REF_CLK
(50 MHz)
PHY0
(MII)
TX_CLK
Ethernetport
3
RX_CLK
Ethernetport
2
TX_CLK
Ethernetport
1
RX_CLK
Ethernetport
0
PHY1
(MII)
PHY_CLK
(25 MHz)
Abbildung 10: Taktversorgung der Ethernetanschaltung
5.2
Resetlogik des ERTEC 400
Die Resetlogik setzt die gesamte Schaltung des ERTEC 400, bis auf den PCI-Teil der AHB-PCI-Bridge, zurück.
Das Resetsystem des ERTEC 400 wird durch folgende Ereignisse aktiviert:
•
Hardware-Reset über externen Pin RESET_N.
•
Software-Reset über Bit XRES_SOFT im Reset-Control-Register.
•
Watchdog-Reset über Watchdog-Timer Überlauf.
Das auslösende Reset-Ereignis kann im Reset-Status-Register ausgelesen werden.
5.2.1
Hardware-Reset
Die externe Hardware-Reset-Beschaltung wird an dem Pin RESET_N des ERTEC 400 angeschlossen. Durch
Aktivieren des Hardware-Reset wird intern die gesamte Schaltung, bis auf den PCI-Teil, des ERTEC 400
zurückgesetzt. Der Hardware-Reset muss mindestens 35µs stabil anliegen (siehe folgende Abbildung). Danach
läuft die PLL innerhalb tLock = 400µs hoch. Der Lock-Zustand der PLL wird überwacht. Der Zustand der PLL kann
im Statusregister PLL_STAT_REGausgelesen werden. Am Eingang RESET_N ist ein Filter integriert das Spikes
bis 10ns unterdrückt. Beim Hardware-Reset wird ein Bit im Reset-Status-Register gesetzt, das von der
ausgelösten Resetfunktion unberührt bleibt. Dieses Register kann nach Wiederanlauf ausgewertet werden. Die
folgende Abbildung zeigt die Hochlaufphase der PLL nach Reset.
f/MHz
tLOCK = 400µs
300
aktiv
Reset
Hochlauf PLL
t/µs
35
Abbildung 11: Hochlaufphase der PLL
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 65
ERTEC 400 Handbuch
Version 1.2.0
5.2.2
Watchdog-Reset
Der Watchdog-Reset ist eine hardwareseitige Überwachung der Software. Basis für die Überwachung ist eine
über Watchdog-Timer einstellbare Zeit. Durch Nachtriggern des Timers auf einen eingestellten 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 400 über eine parametrierbare Pulsverlängerung (PV) geführt. Der WatchdogReset setzt den kompletten Schaltungsteil des ERTEC 400 zurück. Das Watchdogereignis wird dann über einen
GPIO-Pin an das Hostsystem signalisiert.
Wie beim Hardware-Reset wird ein Bit im Reset-Status-Register gesetzt, das von der ausgelösten Resetfunktion
unberührt bleibt. Dieses Register kann nach Wiederanlauf ausgewertet werden.
5.2.3
Software-Reset
Im ERTEC 400 kann durch Setzen eines Bits im Reset-Control-Register ein Software-Reset ausgelöst werden. Im
Reset-Status-Register wird beim Auslösen des Resets das Bit XRES_SOFT gesetzt.
5.2.4
PCI-Bridge-Reset
Ein Hardware-Reset der PCI-Bridge kann über folgende Funktionen generiert werden:
•
Aktivieren des Hardware-Reset-Pins RES_PCI_N und RESET_N
•
Aktivieren des AHB-PCI-Software-Reset durch Setzen des Bits XRES_PCI_AHB_SOFT im ResetControl-Register.
Der Ausgang RES_PCI_N setzt die Seite der PCI-Bridge zurück, die mit dem CLK_PCI (33/66MHz) getaktet ist.
Der Zustand von RES_PCI_N kann im Reset-Control-Register gelesen werden.
Der Software-Reset XRES_SOFT und XRES_PCI_AHB_SOFT und der Watchdog-Reset setzt die Seite der PCIBridge zurück, die mit dem CLK_50MHz getaktet ist.
Um einen definierten Zustand der PCI-Bridge durch die oben genannten Reset-Quellen zu gewährleisten, ist
darauf zu achten, dass beide Seiten der PCI-Bridge zurückgesetzt werden. Ein Hardware-Reset der PCI-Bridge
löscht alle Bridge- und Konfigurations-Register.
Um ein Löschen der PCI-Register zu verhindern ist ein Warm-Reset zur PCI-Bridge möglich. Dazu muss im
Register PCI_RES_REQ das Bit PCI_SOFT_RESREQ gesetzt werden. Die PCI-Bridge beendet zu diesem
Zeitpunkt alle Transaktionen und quittiert dies mit PCI_SOFT_RESACK. Dieser Zustand kann von der ARM946ES Anwendersoftware im Register PCI_RES_ACK abgefragt werden. Alle neuen Transaktionen vom AHB und
PCI-Bus werden mit Retry abgewiesen. Dies betrifft auch die Bridge- und Konfigurations-Register von der AHBSeite.
Der Zustand bleibt solange erhalten, bis das Bit PCI_SOFT_RESREQ wieder gelöscht wird. Alle oben genannten
Registern sind im System-Control-Register Bereich ansprechbar.
5.2.5
Aktionen während aktiven HW-Reset
Während der aktiven HW-Reset-Phase werden die Zustände der 3 Boot-Pins (3) in das Register BOOT_REG und
der Config-Pins (5) in das Register CONFIG_REG eingelesen. Nach der Hardware-Reset-Phase stehen diese
Pins als normale EMIF-Funktions-Pins zur Verfügung.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 66
ERTEC 400 Handbuch
Version 1.2.0
5.3
Adressraum- und Quittungsverzug- Überwachung
Zur Erkennung von Fehladressierungen, unerlaubten Zugriffen und Quittungsverzug sind im ERTEC 400
Überwachungsmechanismen eingebaut. Folgende Peripherien werden überwacht:
•
AHB-Bus
•
APB-Bus
•
EMIF
•
PCI-Slave
5.3.1
AHB-Bus Überwachung
Jedem der 3 AHB-Master 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 FIQ-Interrupt 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-ControlRegister QVZ_AHB_M abgelegt.
Bei einer Zugriffsverletzung durch PCI oder LBU als AHB-Master wird zusätzlich ein Interrupt-Request im IRTMakro aktiviert und abgespeichert. Der Interrupt wird als INTA_N auf den PCI-/LBU-Bus gegeben. Bei einer
Zugriffsverletzung durch den PCI-Anwender wird im AHB-Status-Register der PCI-Bridge das Bit0 bei Write oder
das Bit1 bei Read gesetzt und der Interrupt INTA_N aktiviert.
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 FIQ-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 400
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 FIQ-Interrupt für den ARM946-Interrupt-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 FIQ-Interrupt wird dann weggenommen, wenn die Quittungsverzugüberwachung zurückgesetzt wird.
5.3.4
PCI-Slave Überwachung
Das HREADY-Signal des PCI-Slaves wird mit einem 8-Bit breiten Zähler überwacht, d.h nach 255 AHB-Takten
spricht die Überwachung an. Die Überwachung kann im System-Control-Register PCI_RES_REQ aktiviert bzw.
deaktiviert werden. Der Überwachungszähler wird bei HREADY = 1 zurückgesetzt und bei HREADY = 0
inkrementiert
Für den Quittungsverzug sind 3 Ursachen möglich:
•
tatsächlicher Quittungsverzug im Slave
Wenn nach max. 255 AHB-Takten HREADY noch 0 ist, wird der Zugriff zum Master mit einer ErrorResponse abgeschlossen und der QVZ-Interrupt aktiviert.
Zum Slave läuft der Zugriff weiter. Solange der Slave kein HREADY=1 liefert muss jeder weitere Zugriff
auf den Slave mit einer Error-Response abgeblockt werden. Der Interrupt wird nur einmal ausgelöst.
Steht parallel zur verlängerten Datenphase schon die Adress-Phase eines nicht IDLE-Zugriffs an, dann
wird dieser abgebrochen und eine IDLE-Adress-Phase an den Slave ausgegeben
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 67
ERTEC 400 Handbuch
Version 1.2.0
•
Zu viele Retrys in Folge für den gleichen Zugriff
Der Zugriff zum Master wird mit einer Error-Response abgeschlossen und der QVZ-Interrupt aktiviert. Da
ein mit Retry abgewiesener Zugriff nicht zwingend wiederholt werden muss, darf der nächste Zugriff des
Masters auf den Slave geschaltet werden.
•
Nach Split-Response bleibt HSPLIT aus
Der Zugriff zum Master wird mit einer Error-Response abgeschlossen und der QVZ-Interrupt aktiviert. Im
Slave muss weiter auf das Signal HSPLIT=1 gewartet werden. Solange die Meldung zum Slave
ausbleibt wird jeder weitere Zugriff auf den Slave mit einer Error-Response abgeblockt.
Nach AHB-Spezifikation muss nachdem der Slave HSPLIT=1 ausgegeben hat, der Zugriff wiederholt werden. Da
aber der Zugriff beim Master schon abgeschlossen ist, kann die Datenphase nicht mehr korrekt behandelt
werden.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 68
ERTEC 400 Handbuch
Version 1.2.0
6
External Memory Interface (EMIF)
Um auf externen Speicherbereich zugreifen zu können, ist im ERTEC 400 ein Externes Memory Interface
realisiert. Das Interface beinhaltet je einen SDRAM-Memory-Controller und einen SRAM-Memory-Controller für
asynchrone Speicher. 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 nach 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 400 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)
Max. 256 MByte SDRAM bei 32-Bit Datenbusbreite oder
Max. 128 MByte SDRAM bei 16-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 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 Ready-Signal unterschiedlich parametriert werden
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[2: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
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 69
ERTEC 400 Handbuch
Version 1.2.0
6.1
Adressbelegung EMIF-Register
Die EMIF-Register sind 32-Bit breit. Die Register dürfen nur mit 32-Bit-Zugriffen beschrieben werden.
EMIF
Register-Name
(Basisadresse 0x7000_0000)
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
0x00000000 Revision-Code und Status Register
Tabelle 18: Übersicht EMIF-Register
6.2
EMIF-Register Beschreibung
Revision Code and Status
Beschreibung
Bit-Nr
31
30
29..16
15..8
7..0
R
Addr.: 0x7000_0000
Default: 0x0000_0000
Revison Code und Status Register
Name
---------Major_Revision
Minor_Revision
Async Wait Cycle Config
Beschreibung
Beschreibung
Reserviert
Reserviert
Reserviert
00h
00h
W/R
Addr.: 0x7000_0004
Default: 0x4000_0080
Async Wait Cycle Config Register
Bit-Nr
31
30
Name
---WP
29..8
7..0
---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 QVZIRQ abgeschlossen wird.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 70
ERTEC 400 Handbuch
Version 1.2.0
SDRAM Bank Config
Beschreibung
W/R
Addr.: 0x7000_0008
Default: 0x0000_20A0
SDRAM Bank Config Register
Bit-Nr
31..15
14
Name
---WB
13*
CL
12..11
10..8*
---ROWS
7
6..4
---IBANK
3
2..0
---PAGESIZE
Beschreibung
Reserviert
Write burst type
0: programmed burst length
1: single write (nicht erlaubt bei 16 bit breiter SDRAM Bank)
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: 14 Row Address lines
111: 15 Row Address lines
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 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
---AT
(Read only)
INIT_DONE
(Read only)
---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
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 71
ERTEC 400 Handbuch
Version 1.2.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) (AHB Takt hat eine Länge von 20 ns)
Bit-Nr
31
30
Name
---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
---ASIZE
Beschreibung
Reserviert
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
Seite 72
ERTEC 400 Handbuch
Version 1.2.0
Extended Config
Beschreibung
W/R
Addr.: 0x7000_0020
Default: 0x0303_0000
Einstellung weiterer Funktionalitäten
Bit-Nr
31
30
Name
---TEST_1
29
TEST_2
28..26
25
---ADB
24
ASDB
23..20
19
---TEST_3
18
17..16
---BURST_LENGTH
15
14
---TRCD/TCD
13..9
8
---SDSIZE
7
ATIRQ
6..0
----
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: 2 AHB-Takte
1: 1 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
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 73
ERTEC 400 Handbuch
Version 1.2.0
7
Local Bus Unit (LBU)
Der ERTEC 400 kann auch von einem externen Host-Prozessor betrieben werden. Dafür stehen zwei
unterschiedliche Bus-Schnittstellen zur Verfügung:
•
PCI-Bus
•
Local-Bus-Unit
Die Auswahl des Bussystems erfolgt über den Eingangspin CONFIG[2].
CONFIG[2] = 0
LBU-Bussystem aktiv
Die LBU ist ein 16-Bit breites Dateninterface.
Folgende Signalpins stehen für die LBU am ERTEC 400 zur Verfügung:
•
•
•
•
•
•
•
•
•
•
Datenbus
Adressbus
Memory-CS
Register-CS
RD/WR-Config
RD/WR
Ready
Byte-Selektion
Page-Segmentauswahl
Interruptausgänge
16 Bit
21 Bit
1
1
1
2
2
2
2
2
LBU_DB[15 : 0]
LBU_AB[20 : 0]
LBU_CS_M_N
LBU_CS_R_N
LBU_CFG
LBU_WR_N / LBU_RD_N
LBU_POL_RDY, 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 400 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 ChipSelect-Signal „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
Der Zugriff auf den ERTEC 400 internen Adressbereich erfolgt über das Chip-Select-Signal „LBU_CS_M_N“.
Die LBU unterstützt für verschiedene Host-Rechner Zugriffe auf den Adressbereich mit zwei getrennten Readund Writeleitungen oder mit einer gemeinsamen Read-/Writeleitung. Die Einstellung der Zugriffsart erfolgt über
den Eingang „LBU_CFG“. Die Polarität des Ready-Signals erfolgt über den Eingang „LBU_POL_RDY“.
LBU_POL_RDY
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 400 (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.
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
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 74
ERTEC 400 Handbuch
Version 1.2.0
7.1
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_RANGERegisters 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-RANGE-Register mehrere Bits auf 1 gesetzt, dann errechnet sich die Range
immer nach dem höchstwertigen Bit (siehe Beispiel 3)
PAGEx_RANGE_HIGH
31
2423
16
00000000 00000000
00000000 00010000
00000000 00000110
00000000 00000010
PAGEx_RANGE_LOW
15
8 7
0
00000001 00000000
01000000 00000000
00000000 00000000
00000000 00000000
Größe der Pagex
256 Byte
1 MByte
256 kByte
128 kByte
Tabelle 19: 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
00000000 00000000
01000000 00000000
00010000 00000000
00000000 00000001
PAGEx_ OFFSET _LOW
15
8 7
0
00000001 00000000
00000000 00000000
00000000 00000000
00000000 00000000
Offset für Pagex
256 Byte
1 GByte
256 MByte
64 kByte
Tabelle 20: 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 400 zuzugreifen.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 75
ERTEC 400 Handbuch
Version 1.2.0
7.3
Page-Control-Einstellung
Mit dem Page-Control-Register kann der Anwender die Zugriffsart auf die entsprechende Page einstellen.
Bestimmte Bereiche des ERTEC 400 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 16-Bit-Datenzugriff
erlaubt. Die folgende Tabelle zeigt an, welche ERTEC 400-Adressbereiche zwingend als 32-Bit Zugriffe
eingestellt werden müssen:
ERTEC 400 Bereich
System-Control-Register
Timer 0 / 1
F-Counter
Watchdog
IRT-Register
SDRAM
User-RAM
Kommunikations-RAM
(als User-RAM)
Kommunikations-RAM
(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
-
x
Tabelle 21: Übersicht der Zugriffe auf Adressbereiche von ERTEC 400
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 8-Bit- oder 16-Bit-Zugriff 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. 8-Bit-Zugriffe werden direkt an den AHBBus weitergegeben und sind deshalb bei einer 32-Bit breiten Page nicht sinnvoll.
Beim Hostzugriff auf die Adressbereiche des ERTEC 400 muss unterschieden werden zwischen 16-Bit- und 32Bit-Host-Prozessor.
Bei einem 16-Bit-Host-Prozessor wird die Datenbreite der Variablen definiert. Die verschiedenen Compiler
realisieren die Zugriffe in beliebiger Reihenfolge. Es muss bei einem 32-Bit Zugriff durch die Anwendersoftware
sichergestellt werden, das der Zugriff in der Reihenfolge LOW-16-Bit und danach HIGH-16-Bit auf den 32-BitAdressbereich erfolgt.
Bei einem 32-Bit-Host-Prozessor wird die Zugriffsreihenfolge durch Einstellung seines „Externen Bus Controllers“
festgelegt. Der Adressbereichszugriff muss in diesem Fall als „Little-Endian-Zugriff“ parametriert werden.
Die Zugriffe des Host erfolgen asynchron zum AHB-Clock des ERTEC 400. Deshalb werden sie auf den AHBClock einsynchronisiert. Die folgenden Abbildungen zeigen verschiedene Read- und Write-Sequenzen mit den
dazugehörigen Timingwerten:
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 76
ERTEC 400 Handbuch
Version 1.2.0
7.3.1
LBU Read zum ERTEC400 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 12: 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 22: Timing für LBU-Lesezugriffe mit separater Read-/Writeleitung
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 77
ERTEC 400 Handbuch
Version 1.2.0
7.3.2
LBU Write zum ERTEC400 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
tRTW
tWRE
tWAH
LBU_RDY_N
tRAP
tWDV
tWDH
LBU_D(15:0)
Abbildung 13: 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 23: Timing für LBU-Schreibzugriffe mit separater Read-/Writeleitung
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 78
ERTEC 400 Handbuch
Version 1.2.0
7.3.3
LBU Read zum ERTEC400 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 14: 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 24: Timing für LBU-Readzugriffe mit gemeinsamer Read-/Writeleitung
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 79
ERTEC 400 Handbuch
Version 1.2.0
7.3.4
LBU Write zum ERTEC400 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 15: 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 25: 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 400 Datenbus.
Die LBU besitzt getrennte Chip-Select-Leitungen für die Page Register (LBU_CS_R_N) und den Zugriff auf den
AHB-Bus (LBU_CS_M_N). Die beiden Chip Selects dürfen nicht gleichzeitig aktiv werden und auch nicht während
eines LBU-Zugriffs gewechselt werden.
Die Polarität des Signals LBU_RDY_N wird eingestellt an dem Pin LBU_POL_RDY:
LBU_POL_RDY = 0 (externer Pull-Down-Widerstand) Æ
LBU_POL_RDY = 1 (externer Pull-Up-Widerstand) Æ
LBU_RDY_N ist LOW aktiv
LBU_RDY_N ist HIGH aktiv
Die Zugriffsart wird am Pin LBU_CFG eingestellt:
LBU_CFG = 0
LBU_CFG = 1
Æ
Æ
separate Read- / Write-Leitung (LBU_RD_N und LBU_WR_N)
gemeinsame Read- / Write-Leitung (LBU_WR_N)
Bei LBU_CFG = 1 muss der ungenutzte Eingang LBU_RD_N mit einem Pull-Up-Widerstand abgeschlossen
werden.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 80
ERTEC 400 Handbuch
Version 1.2.0
7.4
Adressbelegung LBU-Register
Die LBU-Register sind 16-Bit breit. Die Register dürfen nur mit 16-Bit-Zugriffe beschrieben werden. Die LBUPaging-Konfigurationsregister 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
0x0000
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
0x0000
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
0x0000
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
0x0000
LBU Pagex-Offset-Register1 High
LBU_P1_CFG
0x0018
2 Byte
W/R
0x0000
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
0x0000
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
0x0000
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
0x0000
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
0x0000
LBU Pagex-Offset-Register3 Low
LBU_P3_OF_H
0x0036
2 Byte
W/R
0x0000
LBU Pagex-Offset-Register3 High
LBU_P3_CFG
0x0038
2 Byte
W/R
0x0000
LBU Konfigurations-Register3
Tabelle 26: Übersicht LBU-Register
7.5
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_0000
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
Seite 81
ERTEC 400 Handbuch
Version 1.2.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_0000
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_0000
Default: 0x0000_0000
Default: 0x0000_0000
Default: 0x0000_0000
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_0000
Default: 0x0000_0000
Default: 0x0000_0000
Default: 0x0000_0000
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
Default: 0x0000_0000
Default: 0x0000_0000
Default: 0x0000_0000
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
Seite 82
ERTEC 400 Handbuch
Version 1.2.0
8
PCI-Interface
Als PCI-Interface wird die AHB-PCI-Bridge von Fujitsu-Siemens eingesetzt. Es hat am AHB-Bus ein 2 Giga-Byte
großes Segment das ab der Adresse 0x80000000 (Offset = 2Gbyte) beginnt. Siehe dazu auch die „Detaillierte
Speicherbeschreibung im Kapitel 9.2. Hier ist der Konfigurations-Bereich des PCI-Macros adressiert. Im
Konfigurationsbereich kann das Mapping der Adressen des AHB auf den Adressbereich des PCI-Busses
eingestellt werden. Zur PCI-Bridge-Beschreibung siehe Dokument /3/
Die Auswahl des Bussystems erfolgt über den Eingangspin CONFIG[2].
CONFIG[2] = 1 PCI-Bussystem aktiv
Das 32-Bit breite PCI-Interface arbeitet mit einer maximalen Frequenz von 66 MHz.
Folgende Signalpins stehen für das PCI-Interface am ERTEC 400 zur Verfügung:
•
•
•
Daten-/ Adressbus
PCI-Power-Management
PCI-Steuerleitungen
32Bit
1
11
•
•
•
•
PCI-Bus-Clock
PCI-Bus-Reset
CS für 4 Adressräume
Interruptausgänge
1
1
4
3
8.1
AD[31 : 0]
PME_N
PAR, FRAME_N, IRDY_N, TRDY_N, DEVSEL_N
STOP_N, IDSEL, PERR_N, REQ_N, GNT_N, M66EN
CLOCK_PCI
RES_PCI_N
CBE0_N – CBE3_N
INTA_N, INTB_N, SERR_N
PCI-Funktionalität
In diesem Kapitel werden die PCI-Funktionen grob beschrieben:
8.1.1
Allgemein Funktionen des PCI-Interface:
•
•
•
•
•
•
•
•
•
•
Konform mit PCI-Spezifikation 2.2
Host-Funktionalität
Master-/Target-Interface
32-Bit AHB-Interface
32-Bit PCI-Interface
Versorgung 3,3 Volt (5Volt verträglich)
Arbeitsfrequenz max. 66 MHz
Laden der PCI-Konfigurations-Register vom ARM946-Prozessor
2 PCI-Interrupt-Ausgänge (INTA_N und INTB_N)
Power-Management Version 1.1
•
•
Keine PCI-Interrupt-Eingänge
Keine Unterstützung von Lock-Transfers
8.1.2
PCI-Master-Interface:
Folgende Zugriffe werden unterstützt:
•
Memory Read
•
Memory Read Line
•
Memory Read Multiple
•
Memory Write Single/Burst
•
Memory Write and Invalitate
•
1 delayed Instruction Queue
•
Write-Data-FIFO mit einer Tiefe von 16
•
Delayed-Read-Data-FIFO mit einer Tiefe von 16
•
Konfigurations-Bereich wird vom ARM946 geladen (nicht von einem EPROM).
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 83
ERTEC 400 Handbuch
Version 1.2.0
8.1.3
PCI-Target-Interface:
Folgende Zugriffe werden unterstützt:
•
Memory Read
•
Memory Read Line
•
Memory Read Multiple
•
Memory Write
•
Memory Write and Invalitate
•
Configuration Read/Write (Type0)
•
I/O Read/Write
•
6 ERTEC 400 interne Adressräume
•
1 Funktion IRT-Kommunikation
•
1 delayed Instruction Queue
•
Write-Data-FIFO mit einer Tiefe von 16
•
Delayed-Read-Data-FIFO mit einer Tiefe von 16
•
Konfigurations-Bereich wird vom ARM946 geladen (nicht von einem EPROM).
8.1.4
PCI-Interrupt-Handling:
Am PCI-Interface stehen die Interrupt-Ausgänge INTA_N, INTB_N und SERR_N zur Verfügung.
Eine Interrupt Anforderung vom ARM946 zum PCI-Bus erfolgt durch einen Schreibzugriff auf den InterruptController, der im IRT-Switch integriert ist. Eine Maskierung und Speicher der Interrupts erfolgt im IRT-Switch.
Damit läßt sich eine Mailbox vom ARM946 zum PCI-Host steuern.
Eine Interrupt Anforderung vom PCI-Bus zum ARM946 erfolgt durch einen Schreibzugriff auf ein IRT-Switch
internes Register. Eine Maskierung und Speicher der Interrupts erfolgt im Interrupt-Controller des ARM946. Damit
läßt sich eine Mailbox vom PCI-Host zum ARM946 steuern.
Bei Anbindung PC basierter Systeme wird nur INTA_N verwendet (nur 1 Funktion der PCI Bridge). Der Ausgang
INTB_N wird nicht verwendet. Bei Anbindung an einen Embedded-Host-Prozessor können sowohl INTA_N als
auch INTB_N verwendet werden. Die Anbindung an den lokalen ARM Prozessor erfolgt über die Interrupts
IRQ0_SP und IRQ1_SP. Beide sind über die interne Logikstruktur der Interrupt Controller Unit (ICU) am IRQ
Eingang des ARM946E-S angebunden. Optional besteht die Möglichkeit diese Interrupts durch Parametrierung
der ICU wahlweise auch als FIQ an den ARM946E-S anzubinden.
Abbildung 16: PCI-Interrupt-Handling
Nach einem Reset wird das PCI-Signal SERR_N nur von der PCI-Bridge generiert (Adress-Parity-Error).
Entsprechend der Einstellung im System-Control-Register „PCI_INT_CTRL“ können die IRT-Interrupts IRQ0_HP
und IRQ_IRT_API_ERR (Synchronisationsprobleme im IRT-API) dazugeschalten werden. Der Interrupt Ausgang
SERR_N ist ein PCI taktsynchrones Signal. Bei Verwendung werden die Interrupts IRQ0_HP und
IRQ_IRT_API_ERR auf den PCI-Takt aufsynchronisiert und für die Dauer einer PCI-Takt-Periode aktiv gehalten.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 84
ERTEC 400 Handbuch
Version 1.2.0
8.1.5
PCI-Powermanagement:
Anforderungen zum Ändern des Power-States werden durch den PCI-Host im Register „PM_Control_Status“ im
PCI-Konfigurations-Bereich durchgeführt. Der ARM946 kann den angeforderten Powerstate im Register „PMState-Req“ im System-Control-Regster Bereich lesen. Der aktuelle Powerstate ist im Register „PM_State_Ack“
im PCI-Konfigurations-Bereich abgelegt. Unterscheiden sich angeforderter Power-State und aktueller PowerState, so wird vom PCI-Macro-Modul ein Interrupt an den Interrupt-Controller des ARM946 generiert. Der
ARM946 kann dann den lokalen Power-State in den angeforderten Power-State durch Beschreiben des Registers
„PM_State_Ack“ ändern. Der aktuelle Zustand kann dann vom PCI-Host durch Lesen des Register
„PM_Control_Status“ abgefragt werden.
Das Ausgangssignal PME_N kann durch Beschreiben des Regsters „PME_REG“ im System-Control-Regster
Bereich aktiviert werden. Dazu muss aber im PCI-Konfigurations-Bereich das Bit „PME-Enable“ im Register
„PM_Control_Status“ gesetzt sein.Der ERTEC 400 braucht zum Auslösen des Signals „PME_N“ den PCI-Takt.
Ist der Powerzustand des ERTEC 400 nicht D0 dann müssen alle PCI-Interrupts im ERTEC 400 per Software
gesperrt werden (lt. PCI-Spec dürfen PCI-Interrupts nur im Zustand D0 freigegeben werden) . Eine
Hardwareunterstützung zum Sperren der Interrupts gibt es nicht.
8.1.6
Zugriffe auf den AHB-Bus:
Die AHB-PCI-Bridge hat bei „Not-Aligned“-Zugriffen auf den AHB-Bus folgendes Verhalten:
•
•
•
8.2
Not-Aligned Posted Writes werden auf der AHB-Seite in 2 Einzelzugriffe mit Lock zerlegt.
Not-Aligned Delayed Reads werden auf der AHB-Seite als volle 32-Bit Zugriffe abgesetzt.
Alle anderen Not-Aligned Zugriffe werden mit Target Abort abgewiesen.
ERTEC 400 - Anwendungen mit PCI:
•
•
8.2.1
ERTEC 400 auf einer PC-Karte unter Ausnutzung der Power-Management-Funktionalität.
ERTEC 400 unter Verwendung des PCI-Busses als lokalen Bus.
ERTEC 400 in einem PC-System
In PC-Systemen kann der ERTEC 400 als PC-Karte mit Host- und Masterfunktionalität ins System integriert
werden. Die PC-Karte kann am 32-Bit-Bus mit maximal 66 MHz betrieben werden. Dabei ist der Interrupt INTB_N
zu sperren, weil das PC-Interface des ERTEC 400 nur ein „Single-Function-Interface“ ist. Damit aber eine
Unterbrechung des niederprioren Interrupts durch einen hochprioren Interrupt vom IRT-Switch möglich wird, kann
der IRQ0_HP auf dem Ausgang SERR_N ausgegeben werden. Dieser realisiert bei PC-Prozessoren einen NMIInterrupt. Wahlweise kann auch der IRT-Interrupt IRQ_IRT_API_ERR auf den Ausgang SERR_N gelegt werden.
Eine zusätzliche Anforderung ist die Unterstützung des Power Managments. In solchen Anwendungen kann die
PC-Karte in verschiedenen Power-Modi betrieben werden. Zusätzlich ist die PC-Karte in der Lage bestimmte
Ereignisse in das Hostsystem zu generieren, die das Hostsystem zum „Aufwachen“ (WAKE) bringen. Wird die
PC-Karte in der Wake-Funktion betrieben, so muss dafür gesorgt werden, dass die PC-Karte im Zustand PowerDown noch „reduzierte“ Funktion beibehalten kann und einen Interrupt über den Ausgang PME_N generieren
kann.
Folgender Ablauf beschreibt beispielhaft die Funktionsweise eines Power-Management-Zustandes:
•
•
•
•
•
•
•
•
•
•
•
•
Anforderung eines Power-Down-States (z.B. D3hot) vom PC-Host.
Interrupt Anforderung an den lokalen Prozessor.
Sicherung des aktuellen Zustandes mit den entsprechenden Registern und einstellen des angeforderten
Zustandes durch den ERTEC 400.
Sperren der PCI-Interrupts.
Bestätigung des angeforderten Zustandes.
Power-Down des PCI-Busses und sperren der Funktionen durch den PC-Host.
Überwachen des Datenverkehrs auf ein bestimmtes Ereignis durch den ERTEC 400.
Auslösen des „PME“-Interrupts beim Erkennen des überwachten Ereignis.
Hochlauf des PC-Hostsystem mit Anforderung des Zustandes Power-UP der einzelnen Devices.
Gesicherten Zustand zurückschreiben durch den ERTEC 400.
Herstellung des letzten Zustandes im PC-Hostsystem.
Übergang in den angeforderten Power-State „Power-UP“.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 85
ERTEC 400 Handbuch
Version 1.2.0
8.2.2
ERTEC 400 als Teilnehmer an lokalem PCI-Bus
In lokalen PCI-Systemen bei den am PCI-System ein Host aktiv ist, kann im Gegensatz zu PC-Systemen die
Konfiguration im Betrieb geändert werden. In Systemen bei denen eine PCI-Kopplung nur zwischen mehreren
ERTEC 400 realisiert wird, kann einer der ERTEC 400 auch die Hostfunktionalität übernehmen. Dadurch kann
eine sehr einfache Single-Master Kommunikation über den PCI-Bus zwischen mehreren ERTEC 400 etabliert
werden.
Bei lokalen Onboard PCI-Bussystemen kann der IRQ0-HP (Hochpriorer IRT-Interrupt) auf den Ausgang INTB_N
geschalten werden, da hier eine eigenständige Software-Struktur gegeben ist.
Für konsistente unaligned Zugriffe, bei denen auf die Daten des IRT-Switch zugegriffen werden muss, ist eine
Konsistenzsicherung für unaligned Zugriffe implementiert. Das Alignment wird über Zugriffe in den verschiedenen
Spiegelbereichen des Kommunikations-RAM signalisiert. Der IRT-Switch wertet diese Spiegelbereiche aus und
stellt so eine Konsistenz für unaligned 16-Bit- und 32-Bit-Zugriffe sicher.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 86
ERTEC 400 Handbuch
Version 1.2.0
8.3
Adressbelegung PCI-Register
Die PCI-Register sind 32-Bit breit. Die Register können mit 8-Bit, 16-Bit oder 32-Bit Zugriffen gelesen oder
beschrieben werden.
PCI
Offsetadresse
Byte 3
(Basisadresse 0x8000_0000)
Byte2
Byte1
Byte0
Zugriff
Default
0x0000
Device_ID
Vendor_ID
R
0x4026110A
0x0004
Status
Command
R/W
0x02300000
Revision_ID
R
0x000020A0
Cache_Line_Size
R/W
0x00000000
0x0008
0x000C
Class_Code
BIST
Header_Type
Latency_Timer
0x0010
PCI_Base_Address_Register0
R/W
0x00000000
0x0014
PCI_Base_Address_Register1
R/W
0x00000000
0x0018
PCI_Base_Address_Register2
R/W
0x00000000
0x001C
PCI_Base_Address_Register3
R/W
0x00000000
0x0020
PCI_Base_Address_Register4
R/W
0x00000000
0x0024
PCI_Base_Address_Register5
R/W
0x00000000
Cardbus_CIS_Pointer
R
0x00000000
R
0x00000000
0x0028
0x002C
Subsystem_ID
0x0030
Expansion_ROM_Base_Adress (Reserviert)
0x0034
Reserviert
0x0038
0x003C
Subsystem_Vendor_ID
R
0x00000000
Capability_Pointer
R
0x00000048
R
0x00000000
Interrupt_Line
R/W
0x00000000
Reserviert
Max_Lat
Min_Gnt
Interrupt_Pin
0x0040
Device_ID
Vendor_ID
R/W
0x00000000
0x0044
Subsystem_ID
Subsystem_Vendor_ID
R/W
0x00000000
0x0048
0x004C
PM_Capability
PM_Data
PM_next_item_ptr
PM_CSR_BSE
PM_Capability_id
PM_Control_Status
R
0x00020001
R/W
0x00000000
0x0050
PCI_Base_Address_Mask_Register0
R/W
0x00000000
0x0054
PCI_Base_Address_Mask_Register1
R/W
0x00000000
0x0058
PCI_Base_Address_Mask_Register2
R/W
0x00000000
0x005C
PCI_Base_Address_Mask_Register3
R/W
0x00000000
0x0060
PCI_Base_Address_Mask_Register4
R/W
0x00000000
0x0064
PCI_Base_Address_Mask_Register5
R/W
0x00000000
0x0068
PCI_Base_Address_Translation_Register0
R/W
0x00000000
0x006C
PCI_Base_Address_Translation_Register1
R/W
0x00000000
0x007
PCI_Base_Address_Translation_Register2
R/W
0x00000000
0x0074
PCI_Base_Address_Translation_Register3
R/W
0x00000000
0x0078
PCI_Base_Address_Translation_Register4
R/W
0x00000000
PCI_Base_Address_Translation_Register5
0x007C
0x0080
0x0084
0x0088
0x008C
Reserviert
Max_Lat
Min_Gnt
R/W
0x00000000
PCI_Arbiter_Config_Register
R/W
0x00000000
INT_Pin
Reserviert
R/W
0x00000000
R/W
0x00020000
Revision_ID
R/W
0x00000000
PM_Capability
Reserviert
Class_Code
0x0090
AHB_Base_Address_Register0
R/W
0x00000001
0x0094
AHB_Base_Address_Register1
R/W
0x00000000
0x0098
AHB_Base_Address_Register2
R/W
0x00000000
0x009C
AHB_Base_Address_Register3
R/W
0x00000000
0x00A0
AHB_Base_Address_Register4
R/W
0x00000000
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 87
ERTEC 400 Handbuch
Version 1.2.0
0x00A4
AHB_Base_Address_Mask_Register0
R
0xBFFF0001
0x00A8
AHB_Base_Address_Mask_Register1
R/W
0x3F000007
0x00AC
AHB_Base_Address_Mask_Register2
R/W
0x00000000
0x00B0
AHB_Base_Address_Mask_Register3
R/W
0x00000000
0x00B4
AHB_Base_Address_Mask_Register4
R/W
0x00000000
0x00B8
Reserviert
0x00BC
Reserviert
0x00C0
AHB_Base_Address_Translation_Register2
R/W
0x00000000
0x00C4
AHB_Base_Address_Translation_Register3
R/W
0x00000000
0x00C8
AHB_Base_Address_Translation_Register4
R/W
0x00000000
R/W
0x00000000
R/W
0x00000000
0x00CC
AHB_Status_Register
AHB_Function_Register
0x00D0
Wait_States_Bridge Wait_States_Bridge Wait_States_Bridge Wait_States_Bridge
_as_PCI_Target
_PCI_Master
_as_AHB_Slave
_AHB_Master
0x00D4
Bridge_Interrupt_Status_Register
R
0x00000000
0x00D8
AHB_Interrupt_Enable_Register
R/W
0x00000000
0x00DC
PCI_Interrupt_Enable_Register
R/W
0x00000000
0x00E0 0x00F4
..............
0x00F8
SERR_Generation_By_Software
W
0x00000000
0x00FC
Enable_Configuration_From_PCI
R/W
0x00000000
Tabelle 27: Übersicht PCI-Register
8.4
PCI-Register Beschreibung
Eine genaue Beschreibung der einzelnen PCI-Register ist im Dokument /3/ nachzulesen.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 88
ERTEC 400 Handbuch
Version 1.2.0
9
Speicherbeschreibung
In diesem Kapitel werden die Speicherbereiche aller integrierter Funktionsgruppen detailliert beschrieben.
9.1
Speicheraufteilung des ERTEC 400
In der folgenden Tabelle sind die AHB-Master mit ihren Zugriffsmöglichkeiten auf die verschiedenen
Speicherbereiche aufgelistet.
Start- und
Endadresse
0000 0000
Segment
0
0FFF FFFF
1000 0000
Funktionsbereich für
ARM9
Funktionsbereich für
IRT
Funktionsbereich für
PCI/LBU
intern. Boot ROM oder intern. Boot ROM oder intern. Boot ROM oder
intern. RAM
intern. RAM
intern. RAM
1
IRT-Switch
Not used
IRT-Switch
2
EMIF (SDRAM)
EMIF (SDRAM)
EMIF (SDRAM)
3
EMIF (asynchr.
Memory Area Bank 03)
4
alle APB Makros incl.
Boot-ROM
Not used
alle APB Makros incl.
Boot-ROM
5
ARM-ICU
Not used
Not used
6
Internes SRAM
Internes SRAM
Internes SRAM
7
EMIF-Register
Not used
EMIF-Register
8 - 15
PCI
PCI
Not used
1FFF FFFF
2000 0000
2FFF FFFF
3000 0000
3FFF FFFF
4000 0000
4FFF FFFF
5000 0000
EMIF (asynchr.
EMIF (asynchr. Memory
Memory Area Bank 0Area Bank 0-3)
3)
5FFF FFFF
6000 0000
6FFF FFFF
7000 0000
7FFF FFFF
8000 0000
FFFF FFFF
Tabelle 28: Aufteilung der Speicherbereiche
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 89
ERTEC 400 Handbuch
Version 1.2.0
9.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. Bei Verwendung von
gelockten I-Cache und D-TCM sind diese nur für den ARM946E-S adressierbar nicht aber von PCI oder IRT.
Bei Nutzung des I-Cache überblendet dieser die ersten 4 kByte (0-4k) des Speicherbereichs. Der D-TCMSpeicher kann beliebig im Adressraum des ARM946E-s platziert werden.
Segment
Contents
Größe
0
intern. Boot ROM oder
intern. RAM
256 MB
1
IRT-Switch
256 MB
2
EMIF (SDRAM)
256 MB
3
EMIF
Peripheral Bank 0
EMIF
Peripheral Bank 1
EMIF
Peripheral Bank 2
EMIF
Peripheral Bank 3
16 MB
16 MB
16 MB
16 MB
Not used
4
Internal Boot-ROM
Beschreibung
Nach Reset: Boot-ROM (8kB physikal.)
0000_0000 - 0FFF_FFFF Nach Memory-Swap: interner USER-RAM
(8kB physikalisch) Note2
8MB physikalisch:
* 0-1 MB fuer Register
1000_0000 - 1FFF_FFFF * 1-2 MB fuer K-RAM (192 kB)
Note1
Bei Nutzung eines kleineren
2000_0000 - 2FFF_FFFF Speicherbereiches Spiegelung über den
gesamten Bereich
Bei Anschaltung eines kleineren Devices
3000_0000 - 30FF_FFFF
Spiegelung über die gesamten 16 MB
Bei Anschaltung eines kleineren Devices
3100_0000 - 31FF_FFFF
Spiegelung über die gesamten 16 MB
Bei Anschaltung eines kleineren Devices
3200_0000 - 32FF_FFFF
Spiegelung über die gesamten 16 MB
Bei Anschaltung eines kleineren Devices
3300_0000 - 33FF_FFFF
Spiegelung über die gesamten 16 MB
3400_0000 - 3FFF_FFFF
8 kB
4000_0000- 4000_1FFF
8 kB physikalisch
Timer
256 Byte
4000_2000 - 4000_20FF 32 Byte physikalisch Note2
Watchdog
256 Byte
4000_2100 - 4000_21FF 28 Byte physikalisch Note2
SPI
256 Byte
4000_2200 - 4000_22FF 256 Byte physikalisch
UART1
256 Byte
4000_2300 - 4000_23FF 256 Byte physikalisch
UART2
256 Byte
4000_2400 - 4000_24FF 256 Byte physikalisch
GPIO
256 Byte
4000_2500 - 4000_25FF 32 Byte physikalisch Note2
System-ControlRegister-Block
256 Byte
4000_2600 - 4000_26FF
F-Counter
256 Byte
Not used
ARM-ICU
256 MB
6
Interner RAM
256 MB
7
EMIF-Register
256 MB
PCI-Bus
164 Byte physikalisch
Allgemeiner Registerblock Note2
8
Byte physikalisch Note2
4000_2700 - 4000_27FF
4000_2800 - 4FFF_FFFF
5
8-15
Adressbereich
2 GB
ARM – Interrupt-Controller
128 Byte physikalisch Note2
Spiegel-Bereich des internen RAM
6000_0000- 6FFF_FFFF
8 kByte physikalisch Note2
Steuer-Register für external Memory-Interface
7000_0000- 7FFF_FFFF
64 Byte physikalisch Note2
Zugriff auf PCI-Bereich: max. 4 Regionen
* <= 1GB Memory Prefetch
* <= 1GB Memory non Prefetch
8000_0000* <= 1GB IO
* 64 kB interne Register
* 16 MB PCI-Konfigurations-Register
FFFF_FFFF
Note: Größe und Lage der Bereiche siehe
"AHB-PCI-Bridge" Rev.2.5, 2002,
FujitsuSiemensComputers
5000_0000- 5FFF_FFFF
Tabelle 29: Detaillierte Beschreibung der Speichersegmente
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 90
ERTEC 400 Handbuch
Version 1.2.0
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
Seite 91
ERTEC 400 Handbuch
Version 1.2.0
10 Test und Debugging
10.1 Embedded Trace Macrocell ETM9
Im ARM946E-S des ERTEC 400 ist ein ETM9-Modul integriert welches ein Tracen von Instructions 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.
10.1.1 Tracemodis
•
•
Normal-Mode mit 4- oder 8-Datenbit Breite
Übertragungsmodes
o Fullrate-Mode bei 50 oder 100MHz
o Halfrate-Mode bei 150MHz
10.1.2 Features des ETM9-Modul
Im ERTEC 400 ist die Ausprägung des ETM9-Moduls Medium. D.h. es besitzt folgende Features:
•
4 Adresskomparatorpaare
•
2 Datenkomparatoren mit Filterfunktion
•
4 direkte Triggereingänge, davon ein Eingang über GPIO-Port beschaltbar
•
1 Triggerausgang, der auch am GPIO-Port für externe Zwecke verfügbar ist
•
8 Memory-Map-Decoder zum Dekodieren des physikalischen Adressbereichs des ERTEC 400
•
1 Sequenzer
•
2 Counter
Ergänzend zur ETM Spec. wurden die 8 MMD Regionen per Hardware ausdekodiert:
•
0k – 4k
: Instruction Cache (I-Cache)
•
4k – 8k
: Daten Cache (D-TCM)
•
8k – 256M
: alle Zugriffe (User-RAM in allen gespiegelten Bereichen)
•
256M – 257M
: Daten (IRT-Register in allen gespiegelten Bereichen)
•
257M – 258M
: alle Zugriffe (Kommunikations-RAM in allen gespiegelten Bereichen)
•
512M – 768M
: alle Zugriffe (SDRAM in allen gespiegelten Bereichen)
•
784M – 800M
: alle Zugriffe (EMIF von CS1)
•
2G – 4G
: Daten (PCI im gesamten 2GB Bereich)
Weitere Informationen zum ETM sind im Dokument /1/ Kapitel 9 nachzulesen.
10.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 im Dokument /7/ nachzulesen.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 92
ERTEC 400 Handbuch
Version 1.2.0
10.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 400 zur Verfügung gestellt:
•
PIPESTA [2:0]
•
TRACESYNC
•
TRACECLK
•
TRACEPKT[7:0]
Die Signale TRACEPKT[7:0] sind alternative Signalpins am GPIO-Port. 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] am Port GPIO[11:8] auf Tracefunktion geschaltet. In der Einstellung 8-Bit werden zusätzlich die
Signale TRACEPKT[7:4] am Port GPIO[21:18] auf Tracefunktion geschaltet.
Stecker, Pinning und Hardwarebeschaltung für das Trace-Interface siehe Dokument /7/.
10.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 wird auf einem internen Pull-UpWiderstand 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 30: 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/.
10.4 Debugging über UART1
Wird der UART1 nicht für anwenderspezifische Aufgaben genutzt, so kann er auch als Debugschnittstelle
eingesetzt werden.
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 93
ERTEC 400 Handbuch
Version 1.2.0
11 Sonstiges
11.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
NRT
PCI
PD
PU
RMII
RT
SPI
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
Non Real Time
Peripheral Communication Interface
Pull Down
Pull Up
Reduced Media Independent Interface
Real Time
Standard Serial Peripheral Interface
Software
Universal Asynchronous Receiver / Transmitter
Warteschlange
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 94
ERTEC 400 Handbuch
Version 1.2.0
11.2 Literaturverzeichnis:
/1/
/2/
/3/
/4/
/5/
/6/
/7/
/8/
/9/
/10/
/11/
/12/
/13/
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
EB 400 Handbuch V1.2.0 (EB400_Handbuch_V120.PDF);
P
P
P
P
P
P
Copyright © Siemens AG 2007. All rights reserved.
Änderungen vorbehalten
Seite 95
ERTEC 400 Handbuch
Version 1.2.0