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