netx User Peripherials 2008 Jiri Spale, Programmierung eingebetteter Systeme 1



Ähnliche Dokumente
Praktikum Mikrocomputertechnik

Quanton Manual (de) Datum: URL: )

Konfigurieren eines HHR Gerät, um es über eine CBX800 an Profibus anzubinden

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Bedienungsanleitung Version 1.0

Elektrische Logigsystem mit Rückführung

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

web: CAD/CAM-Systeme Entwicklung Beratung Vertrieb Kundenbetreuung Service für Werkzeugmaschinen

2008 Jiri Spale, Programmierung in eingebetteten Systemen 1

Powermanager Server- Client- Installation

Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel

Installation des COM Port Redirectors

Konfiguration des ewon GSM Modems Kurzbeschreibung zum Aufbau einer GSM Verbindung

DCS-3110 EVENT SETUP

DST EINFÜHRUNG IN MRT (V2)

Serieller S-Bus reduziertes Protokoll (Level 1)

Technical Note 0302 ewon

Beispiel: Siemens AG 900E03 9 Seiten Update:

Schnittstellenbeschreibung Funkempfänger SRC-RS485-EVC

Tech Note: SYSTEMVARIABLEN SIO_RJ11_BAUDRATE. Tel.: +43 (0) 3159/ Products: SLS Produkte A-8344 Bad Gleichenberg

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

iphone 4 - Einrichtung des VPN Clients (Cisco VPN Client) / Verbinden des iphones mit einem Exchange

Benutzeranleitung Kontoverwaltung

Elexis - Afinion AS100 Connector

METTLER TOLEDO ETHERNET-Option

1 Registrieren Sie sich als Benutzer auf dem Televes. 2 Sobald ein Konto erstellt ist, können Sie auf das Portal

Anleitung für DT-TPC Tel Modul

Adami CRM - Outlook Replikation User Dokumentation

Switch 1 intern verbunden mit onboard NICs, Switch 2 mit Erweiterungs-NICs der Server 1..6

Stepperfocuser 2.0 mit Bootloader

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2)

Bedienungsanleitung Control DC Supply

Tutorial -

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

INTERPRETER Interface. DATAWIN OMR Serie 10 Serie 50 Serie 300. Programmbeschreibung. Edition _01

ORGA 6000 in Terminalserver Umgebung

Auto-Provisionierung tiptel 31x0 mit Yeastar MyPBX

Schnittstelle RS 232, UP RS 232 UP, WS, GJ B A0037

ARAkoll 2013 Dokumentation. Datum:

Local Control Network Technische Dokumentation

Technical Note 0102 Gateway

Einführung in die Welt der Microcontroller

Local Control Network

Seite Wireless Distribution System (Routing / Bridging) 3.1 Einleitung

Zusatzplatine MP-Bus HZS 562

Kommunikation mehrerer PCs über Hubs

Quick-Guide F3Client V6.0

HorstBox (DVA-G3342SD) Anleitung zur Einrichtung der Telefonie

Wie in der Skizze zu sehen ist, bleibt die Periodendauer / Frequenz konstant und nur die Pulsweite ändert sich.

Handbuch PCI Treiber-Installation

Im folgenden wird die Outlookanbindung an organice/pi beschrieben.

Betriebsanleitung Modbus-Konverter Unigate-CL-RS

MINI-USB-DMX-INTERFACE. Bedienungsanleitung

BitRecords FPGA Modul XC6SLX25_V2.0, Mai2013 1


Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Seite Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung

Bedienungsanleitung Modbus-LAN Gateway

Übersicht und Dokumentation der Reset- Funktionen der IO CONNECT

Um DynDNS zu konfigurieren, muss ausschließlich folgendes Menü konfiguriert werden:

UART-Kommunikation mit dem Atmel AVR

NanoCAN & NanoJEasy. Software training

Wir wünschen Ihnen viel Freude und Erfolg mit Ihrem neuen X-PRO-USB-Interface. Ihr Hacker-Team

Calantec GmbH

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

NetVoip Installationsanleitung für Grandstream GXP2000

Tag 2 Eingabe und Interrupts

FastViewer Remote Edition 2.X

Benutzerhandbuch bintec R1200 / R1200w(u) / R3000 / R3000w / R3400 / R3800(wu) GRE

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Anleitung zur Nutzung des SharePort Utility

USB-Driver: Download-Link:

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Select & Preprocessing Cluster. SPP Server #1. SPP Server #2. Cluster InterConnection. SPP Server #n

Das Benutzer- Handbuch. Installation Fritz- Box

Schnellstart. MX510 ohne mdex Dienstleistung

10. Elektrische Logiksysteme mit

MODBUS/TCP und Beckhoff Steuerelemente

OP-LOG

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Benutzung der LS-Miniscanner

HowTo: Einrichtung & Management von APs mittels des DWC-1000

M a i l C r e d i t. \\Burt\user\Soutschek\FP\Technik\Frankiermaschinen\00_PC Software\MailCredit\Anleitung MailCredit Installation.

CU-R-CONTROL. Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32. Autor: Christian Ulrich

Benutzerverwaltung Business- & Company-Paket

Montage. Montage. Auf DIN-Hutschiene 35 mm (EN50022) Einbaulage beliebig Betriebsspannung Un Stromaufnahme Leistungsaufnahme.

estos UCServer Multiline TAPI Driver

Stefan Dahler. 1. Remote ISDN Einwahl. 1.1 Einleitung

Anwenderdokumentation AccountPlus GWUPSTAT.EXE

trivum Multiroom System Konfigurations- Anleitung Erstellen eines RS232 Protokolls am Bespiel eines Marantz SR7005

EKF Software Server. Handbuch. Version 2.1. Hersteller: 2008 mesics gmbh Berliner Platz Münster info@mesics.de

1. Speicherbausteine JK-RS-Master-Slave-Flip-Flop

Inbetriebnahme WAGO Controller mit analogen Eingangs- und Ausgangsmodulen

Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x

Quick Guide Mitglieder

Beschreibung. Elektronischer Münzprüfer G

Kurzanleitung. Hotel Modus. Version / MB82 / MB82S<, Stand Vestel Germany GmbH Parkring Garching bei München

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Transkript:

netx User Peripherials 2008 Jiri Spale, Programmierung eingebetteter Systeme 1

Pin Sharing netx: mehr Funktionen als Pins Sharing (gemeinsame Benutzung) 2 Sharing-Modi: Asynchronous Pin Sharing netx500 und netx100 nur diese Art Zwischen jedem Multifunktionspin und seinen internen Signalen befindet sich ein MUX, gesteuert durch NET_IO_CFG Register Die Eintragung neuer Werte in den NET_IO_CFG Register ist gesichert, da Fehleinträge HW-Schäden verursachen können (netx, Peripherien): Vor jedem Update muss zuerst ein Access Key gelesen und zurück geschrieben w. Synchronous Pin Sharing via MUX-Matrix (MMIO) mehr flexibel als asynchron geht nur, wenn die geshareten Signale in gleichen Clock Domains liegen netx50 beide Arten, mehr synchrone Art Jeder der 40 IO-Pins bei netx50 hat sein Configuration Register, mittels dessen kann jede der 148 interner Funktionen an den Pin geroutet werden Sicherung wie bei asynchronem Modus 2008 Jiri Spale, Programmierung eingebetteter Systeme 2

Digitale paralelle Ein- und Ausgänge 2 Arten 1. GPIO General Purpose IOs Komplexe Parametrisierung Zusammenarbeit mit Timern 2. PIO Peripherial IOs Einfache bidirektionale IO-Pins, Schreib- und Lese-Funktion 2008 Jiri Spale, Programmierung eingebetteter Systeme 3

GPIOs - Übersicht Eckdaten netx500: 16 Stück arbeiten mit zusammen - mit 5 internen General Purpose Timern - mit dem IEEE1588 systimer I/O-Signale Reaktion auf Timer-Erreignisse Funktionen einstellbar: Input/Output, invertiert/nichtinvertiert Outputs individuell oder en Bloc per Register einstellbar Jeder GPIO kann einem Timer oder der System Time zugeordnet werden einstellbar als Capture-Input oder PWM-Output Jeder GPIO kann INT auslösen 2008 Jiri Spale, Programmierung eingebetteter Systeme 4

PIOs - Übersicht Eckdaten netx500: 84 Stück, jeder angeschlossen zum Paar von programmierbaren IO controllers Jeder PIO-Controller Spezialisierung eines Teils des Dual-Port-Memory Host Interfaces Funktionen einstellbar: simple I/O oder zur Realisierung vom Feldbus-Slaves PIO 0-30: shared mit Motor Controls Pins, LCD Controller und ETM (Embedded Trace Macrocell, ein Debug-Instrument) PIO 32-84: shared mit Host Interface Pins Host Interface Pins können konfiguriert werden: 1. Address Data Bus für den Host Interface Extension Bus 2. Dual Port Memory Interface 3. Pins, die nicht für 1. benutzt sind, als bidirektionale IO-Pins PIO 31 existiert nicht 2008 Jiri Spale, Programmierung eingebetteter Systeme 5

Register (für jeden GPIO-Pin) GPIO - Register GPIO_CFGx Configuration Register GPIO_THRSH_CAPTx Data Register GPIO_CFGx COUNT_REF: Zuordnung zu einem Counter Mode: Kontrolle der Output-Pins separat oder en bloc INV: invertierend oder nicht IOCFG: Capture, PWM, simple IO 2008 Jiri Spale, Programmierung eingebetteter Systeme 6

GPIO-Pin als Input Zustand in NETX_GPIO_IN Register Capture-Funktion: Timer-Zustand eingelesen bei - steigende/fallende Flanke am GPIO-Pin - log.0/log.1-pegel am GPIO-Pin oder Interrupt ausgelöst bei - steigende/fallende Flanke am GPIO-Pin - log.0/log.1-pegel am GPIO-Pin 2008 Jiri Spale, Programmierung eingebetteter Systeme 7

GPIO-Pin als Output Modus separate Kontrole (MODE-Feld) Jeder Pin eigenes Register gut, wenn jeder Pin andere SW-Aufgabe erledigt Modus gemeinsame Kontrole (MODE-Feld) alle Pins gesteuert via GPIO_OUT Register oder Gruppen von Pins können zusätzlich durch separet Register gesteuert w. Pins können Timern zugeordnet werden und als PWM fungieren Bsp: pgpio->cfg[8] = 0x00000011; // Output, controlled by GPIO line register pgpio->cfg[9] = 0x00000011; pgpio->cfg[10] = 0x00000011; pgpio->cfg[11] = 0x00000011; pgpio->cfg[12] = 0x00000000; // Input, Standard read mode pgpio->cfg[13] = 0x00000000; pgpio->cfg[14] = 0x00000000; pgpio->cfg[15] = 0x00000000; while(1) pgpio->line_out = pgpio->line_in>>4; // copy inputs to outputs 2008 Jiri Spale, Programmierung eingebetteter Systeme 8

GPIO-Timers netx GP-Timers integriert in die GPIO-Unit System Timer integriert in Communication Controller Block (kalibriert für RT-Eth-Pakete) GP-Timer 32-Bit Symetrisch Asymetrisch Int bei 0 Int bei Max. 2008 Jiri Spale, Programmierung eingebetteter Systeme 9

GPIO-Timer-Register Counter Control Register CNT_Event Timer oder Counter, Pegel oder Flanken ONCE - One-Shot oder kontinuierlich SYM_NASYM - Symmetrisch oder asymmetrisch IRQ_EN - Mit oder ohne Ints 2008 Jiri Spale, Programmierung eingebetteter Systeme 10

GPIO: PWM-Modus #1 timervalue > treshold GPIO-Pin=log.1 timervalue <= treshold GPIO-Pin=log.0 INV aktiv INV inaktiv Es können mehrere PWM-Signale erzeugt werden, die sich zum gleichen Timer beziehen motion control 2008 Jiri Spale, Programmierung eingebetteter Systeme 11

GPIO: PWM-Modus #2 Bsp. pgpio->cfg[11] = 0x19 pgpio->counter_control[0] = 0x5C0 pgpio->tc[11] = 0x100000; pgpio->counter_max[0] = 0x1000000; // Max count pgpio->counter_control[0] = 0x01 // Start // Output, PWM mode, Counter0 // Symmetric, continuous reload, // connected to GPIO11 // Threshold value 2008 Jiri Spale, Programmierung eingebetteter Systeme 12

GPIO Capture Mode GPIO-Input Signal verwender zur Speicherung des aktuellen Timer-Wertes im Threshold Register Capture-Erreignis: aufsteigende Flanke oder High Level bei Benutzung von INV auch fallende Flanke oder Low Level Bsp. pgpio->cfg[12] = 0x08; // Input, non-inverted, capture, counter 0 pgpio->counter_control[0] = 0x642; // Asymmetric, continuous, GPIO12 pgpio->counter_max[0] = 100000; // Set the maximum count value pgpio->counter_control[0] = 0x01 // Start the timer Bei aufsteigender Flanke am GPIO12 wird der aktuelle Wert vom Timer in den Threshold-Register gespeichert netx500: 16 capture channels 2008 Jiri Spale, Programmierung eingebetteter Systeme 13

PIOs #1 PIO0-PIO30: shared mit Motion Control, LCD und ETM-Pins PIO32-PIO84: shared mit Host Interface Pins Gilt für alle PIOs: IO Configuration Register Wahl: peripherial function oder IO IO Configuration Mask Register Einstellung, welcher Pin im IO Config. Reg. geändert werden darf IO Configuration Access Key Register (CAK) Schutz von beiden obigen Regs vor irrtümlicher Änderung: Vor jedem Lesen/Schreiben der obigen 2 Regs: vom CAK: Key Value lesen und zurückschreiben Nach jeder Änderung von Conf. Reg.: Key Value ungültigt gemacht Diese Prozedur muss bei jeder HW-Änderung gemacht w. 2008 Jiri Spale, Programmierung eingebetteter Systeme 14

PIOs #2 Gilt für PIO0-PIO30: Output Enable Register Output Driver aktivieren Input Register Eingangs-Werte ablesen Output Register Werte für Ausgänge definieren 2008 Jiri Spale, Programmierung eingebetteter Systeme 15

PIOs #3 Gilt für PIO32-PIO84: DPM_ARM_IF_CFG0 Register Modus-Wahl: Extension Bus Dual-Port-Memory I/O-Mode disable nur Pins, die nicht für Address Data Bus benutzt sind, dürfen als IO konfiguriert. w. (mit DPM_ARM_IO_MODEx) DPM_ARM_IO_DRV_ENx Register Freigabe von Output-Treiber, falls benutzt als Outputs Mode 0 Mode 1 DPM_ARM_IO_DATAx Register Bei Eingängen: Status lesen Bei Ausgängen: Belegung definieren 2008 Jiri Spale, Programmierung eingebetteter Systeme 16

Gilt für PIO32-PIO84: PIOs #4 DPM_ARM_IO_MODE0 Register 32 Bits für PIO 32..63: Wahl 0: PIO Mode 1: Host Interface Mode Falls in DPM_ARM_IF_CFG0 I/O-Mode eingestellt, sind die Einstellungen in DPM_ARM_IO_MODEx wirkungslos! (Dual-Port-Mem oder Ext. Bus Interface, falls enabled) DPM_ARM_IO_MODE1 Register 21 Bits für PIO 64..84: Wahl 0: PIO Mode 1: Host Interface Mode IN_CONTROL (2-Bit-Info) 00 Reset condition : Eingangsdaten gelesen beim Systemstart 01 Eingangsdaten mit 100MHz Systemtakt abgetastet 10 Eingangsdaten nur abgetastet, wenn PIO77=log.0 11 Eingangsdaten nur abgetastet, wenn PIO77=log.1 2008 Jiri Spale, Programmierung eingebetteter Systeme 17

Asynchrone serielle Übertragung Bsp.: Zu senden: A 0x41 0100 0001 Übertragungsparameter: 115200 Baud 8 Datenbits 1 Stoppbit Gerade Parität (even Parity) Parität-Regeln: Anzahl Datenbits gerade (even): odd parity bit=1 (dann: ungerade Anzahl aller Bits (Data+Parität) Anzahl Datenbits ungerade (odd): even parity bit=1 CLK_TR 115,2 * 11 khz = 1,2672 MHz DATA idle 0 0 1 0 0 0 0 0 1 0 1 idle Startbit Datenbits Stoppbit gerade Parität CLK_RECV 1 Baud = 1 Symbol/s = 1 Byte/s = 1 Bps 2008 Jiri Spale, Programmierung eingebetteter Systeme 18

UART - Übersicht Merkmale: 3 16550-kompatible UARTs Jeder mit16 Bytes FIFO ausgestattet Max. Rate 3,125 MBaud HW flow control via CTS/RTS möglich UART Pins multiplexed mit GPIO Mögliche Konfigurationen 5, 6, 7, 8 Databits 1 oder 2 Stop-Bits gerade, ungerade oder keine Parität IrDA SIR Kodierung/Dekodierung (Anschluss Infrarot Transceiver vorgesehen Spezielle zusätzliche Eigenschaften von UART0 als Hilscher Diagnostic Port für netx boot loader serial boot mode 2008 Jiri Spale, Programmierung eingebetteter Systeme 19

UART Initialisierung #1 1. GPIO/UART-Pins in UART-Mode pgpio->cfg[0]=0x02; //Uart0 pgpio->cfg[1]=0x02; //Uart1 2. UART-Clock einstellen (das 16fache der gewünschten Baud-Rate) Einstellung durch Dividieren der Bus-Takts (Prescaler). 2 Modi, einstellbar in Baud Rate Mode Control Register: BAUD_DIV = (100 MHz/(16* baudrate))-1 // mode control=0 BAUD_DIV = (16*baudRate)/systemFrequency)*2 16 // mode control=1 Beispiel für 9600 Baud und Mode Rate Control = 0: BAUD DIV = (100*10 6 /(16*9600))-1 = 650 Der max. 16-Bit-Wert für Prescaler (Divisor) liegt getrennt in 2 Registern: puart0->brm_cr=0; puart0->bauddiv_lsb = (650&0xFF); puart0->bauddiv_msb = (650>>8); 2008 Jiri Spale, Programmierung eingebetteter Systeme 20

UART Initialisierung #2 3. Format des UART-Paketes und FIFO-Benutzung einstellen Register: Line Control Register Bsp: puart0->line_cr = 0x60; 8 bits no parity one stop bit; 4. UART in Betrieb setzen Für Daten Senden: Transmit Driver in DRV ENABLE Register freigeben Falls HW control flow gewünscht: RTS Driver HW im gleichen Reg freigeben /* Set TX-Driver to enabled */ puart0->drv_enable=0x01; /* Finally enable the UART */ puart0->cr = UART_ENABLED; 5. Weitere nützliche Register UARTx_FLAG Flag Register weitere Status-Infos ausgeben UARTx_RTS_CTRL RTS Control Register RTS, CTS 2008 Jiri Spale, Programmierung eingebetteter Systeme 21

UART Receive und Transmit Transmit Schreiben in Data Register Receive Lesen aus in Data Register Mögliche Einstellung bei FIFO-Benutzung: FIFO generiert ein Interrupt, falls FIFO fill-level den vordefinierten Wert erreicht. Einstellung dieses Wertes: in - Transmit FIFO Interrupt Trigger Level Register - Receive FIFO Interrupt Trigger Level Register Receive kann erfolgen Interrupt Mode Polling Mode 2008 Jiri Spale, Programmierung eingebetteter Systeme 22

UART und Interrupts 4 UART-Interrupt-Signale Receive Int Transmit Int Character Timeout Modem Status Int Diese 4 Signale sind geodert und in 1 Int->Channel zugeführt dem VIC Wenn Interrupt kommt - Flag gesetzt in Interrupt Identification Register Bestim. der Quelle - Lesen der Daten aus dem Data Register - Lesen des Status Register 2008 Jiri Spale, Programmierung eingebetteter Systeme 23

AD-Wandler 2x 10-Bit AD-Umsetzer Jeder mit - 4-Kanal Eingangsmultiplexer - Sample&Hold Unit Also: 8 Kanäle, die parallel ausgewertet werden können Maximale Abtastfrequenz: 1 MHz für jeden ADU Kein Draht zum VIC, Interrupts nicht möglich! (leider) Gesteuert über 1 einzigen Register: ADC Analog Digital Register 2 Ansteuerungsmöglichkeiten: - Zugriff über xpec (empfohlen, bessere Performance wg. Pre-Processing): Über xpec0: ADC-Adresse=0x0017009c Über xpec1: ADC-Adresse=0x0017409c Über xpec2: ADC-Adresse=0x0017809c Über xpec3: ADC-Adresse=0x0017c09c - Zugriff über ARM CPU: Jede der 4 Adresse kann benutzt werden, nur die xpec-unit, die zu dieser Adresse gehört, muss ausgeschaltet werden! 2008 Jiri Spale, Programmierung eingebetteter Systeme 24

AD-Wandler #2 ADC0 eingesetzt: externe R, C, L benötigt Anmerkung 1 Anmerkung 2 ADC1 nicht eingesetzt Anmerkung 1: zu anderen eingesetzten ADUs Anmerkung 2: optional zur Filterung von AGND; die Induktivität muss unter Berücksichtigung des konktreten Falls bestimmt werden. 2008 Jiri Spale, Programmierung eingebetteter Systeme 25

ADC beim Lesezugriff AD-Wandler #3 ADCx_BUSY ADCx_D[9:0] bei ADC1_BUSY=1 solange pollen, bis 0 (Wandlung-Ende) konvertierter Wert 2008 Jiri Spale, Programmierung eingebetteter Systeme 26

ADC beim Schreibzugriff AD-Wandler #4 DONT_WRITE_ADCx ADCx_START ADCx_EN ADCx_SEL[2:0] muss log.1 sein während des Schreibens Start Wandlung ADUx ADUx erlauben Kanalauswahl von ADUx: 0x0 000 Pin ADCxIN0 0x2 010 Pin ADCxIN1 0x4 100 Pin ADCxIN2 0x6 110 Pin ADCxIN3 2008 Jiri Spale, Programmierung eingebetteter Systeme 27

Dokumentation #1 Controller NetX500 Product Brief - Übersicht über die Funktionalitäten - Anschließen zusätzlicher HW-Komponenten Technical Reference Guide - elektrische Eigenschaften, typische Werte, Grenzwerte - Schaltpläne Program Reference Guide wichtig für Programmierer! - Namen und Adressen von Registern - Bedeutung einzelner Bits oder Bitgruppen 2008 Jiri Spale, Programmierung eingebetteter Systeme 28

Dokumentation #2 Bord NXSB100 Manual NXSB 100 Board Documentation - welche der netx500-eigenschaften sind zugänglich - Pinbelegung des Bords NXSB 100 Schematic - Schaltplan NXSB 100 Bill of Material 2008 Jiri Spale, Programmierung eingebetteter Systeme 29

Dokumentation #3 Bord NXHX500 NXHX500-RE description - welche der netx500-eigenschaften sind zugänglich - Pinbelegung des Bords 2008 Jiri Spale, Programmierung eingebetteter Systeme 30

Dokumentation #4 Hitex Entwicklungssoftware Starterkit Hilscher netx - Installation, Inbetriebnahme - Programm-Beispiele rcx rcx API - Aufrufe des real-time BS - Parameter-Beschreibung 2008 Jiri Spale, Programmierung eingebetteter Systeme 31