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