Page heading
Languages and Services
 deutsch 
    You are here menu
    Subpage heading
    Virtual Reality Systems Group / Prof. Dr. Bernd Fröhlich
    Navigation
    Additional Content
    Main Content

    Übersicht

    • RISC-Architektur Layout ->
    • Programm- und Datenspeicher
    • Timer/Counter
    • serielle Interfaces: USART, SPI, Two-Wire
    • ADC / Analog Comparator
    • Power Management

    Übersicht Pins

    • Port A – 8 bit I/O port, A/D Converter
    • Port B – 8 bit I/O port, SPI, Analog Comparator, usw.
    • Port C – 8 bit I/O port, JTAG, Two-wire Serial Bus, usw.
    • Port D – 8 bit I/O port, Timer/Counter, USART, usw.
    • VCC – Versorgungsspannung
    • AVCC – Versorgungsspannung Port A und A/D Converter
    • XTAL1/2 – Anschluss externen Oszillators

    RISC-Architektur

    • Harvard-Architektur : getrennter Programm- und Arbeitsspeicher
    • single-level pipelining : Befehle werden bei jedem Taktzyklus ausgeführt
    • Register-Datei mit 32 8-bit Registern
    • ALU kann in einem Taktzyklus 2 Operanden aus der Register-Datei holen, den Befehl ausführen und das Ergebnis in die Register-Datei schreiben
    • Status-Register : Enthält Informationen über den zuletzt ausgeführten Befehl (Carry Bit, Sign Bit, Negative Flag usw.)
    • Stack befindet sich im SRAM (Arbeitsspeicher) und ist somit nur von dessen Größe begrenzt

    Programm und Datenspeicher, Adressierung

    • Register-Datei
      • 32 Register, direkt durch Nummer (z.B. r13) und über Datenspeicheradressen (0x00 – 0x1f) adressierbar
      • die 6 letzten Register dienen als 16-Bit Zeigerregister der Adressierung des Datenspeichers
    • I/O Register
      • 64 Register, direkt durch Nummer (0x00 – 0x3f, z.B. mit IN und OUT Befehlen) und über Datenspeicheradressen (0x20 – 0x5f, z.B mit LD und ST Befehlen) addressierbar
    • Datenspeicher (SRAM)
      • über 16-Bit Datenspeicheradressen (0x60-0x85f) adressierbar, verschiedene Adressierungsmodi (Direkt,Indirekt, Indirekt mit Verschiebung, Indirekt mit Prä-Dekrement, Indirekt mit Post-Inkrement)
    • EEPROM
      • adressierbar über EEPROM Access Register (EEAR(10-Bit), EEDR, EECR)
    • Flash Programmspeicher
      • Befehle sind 16 oder 32 Bit breit, daher reicht ein 14-bit breiter Programm-Counter um die 16000 Programmplätze zu addressieren
      • in Boot Flash Sektion und Application Flash Sektion einteilbar; der gesamte Programmspeicher kann
      • von der Boot Flash Sektion aus überschrieben werden (SPM Befehl) konstante Tabellen können aus dem Programspeicher geladen werden (LPM Befehl)
    • Stack
      • Stack wächst im Datenspeicher von oben nach unten
      • Stack Pointer Register (16 Bit; SPH,SPL) muss im Programm initialisiert werden

    Digitale I/O Ports

    • Über 3 Register steuerbar: – PORTx : Port Data, DDRx : Data Direction, PINx : Input pin, nur lesbar
    • Jeder Pin kann unabhängig von den anderen gesteuert werden
    • PINxn enthält unabhängig von der Konfiguration des Pins den Wert des Pins, dieser Wert ist erst nach einiger Verzögerung lesbar

    Timer/Counter

    • Zählvariable, die unabhängig vom Programmfluß aufgrund der Taktfrequenz erhöht wird (8-Bit und 16-Bit Breite).
    • Mehrere Ereignisse können erfasst werden:
      • Overflow : Die Zählvariable erreicht ihren maximalen Wert.
      • Compare Match : Die Zählvariable erreicht einen vorher eingestellten Vergleichswert. Ist geeignet um z.B. einen Digital-Analog Konverter zu implementieren.
      • Input Capture : Bei einem externen Ereignis wird der Wert der Zählvariable gespeichert (nur Timer 1). Z.B kann damit ein Analog-Digital Konverter implementiert werden
    • Die Taktfrequenz kann die CPU-Frequenz. aber auch eine externe Uhr sein. Sie kann über den Prescaler geteilt werden (Faktor 8...1024)
    • Zählmodi des Timers:
      • Normal : Counter zählt hoch und läuft über
      • CTC (Clear Timer on Compare Match) : Counter zählt bis Vergleichswert und wird dann auf 0 gesetzt. Der OCR Ausgang kann hierbei getoggelt werden.
      • FAST PWM : Counter zählt hoch und läuft über, OCR Ausgang wird beim Erreichen des Vergleichswertes auf 0 und beim Überlauf auf 1 gesetzt.
      • Phase Correct PWM : Counter zählt hoch und bei Überlauf wieder herunter, OCR Ausgang wird beim Hochzählen, sobald der Vergleichswert erreicht ist, auf 0 und beim Herunterzählen auf 1 gesetzt.

    Serielle Schnittstellen

    • Serial Peripheral Interface – SPI
      • erlaubt high-speed Datentransfer zwischen Atmega32 und Peripheriegeräten
      • benutzt 4 Leiter, full-duplex
    • USART
      • Universal Synchronous und Asynchronous serial Receiver and Transmitter
      • voll duplex, synchron oder asynchrone Operationen, Parity Generierund und Check,
      • Datenüberlauf Kontrolle, Frame Error Check, Noise Filtering
    • Two-wire Serial Interface – TWI (I2C)
      • bis zu 128 Geräte an einen bi-direktionalen Bus anschliesbar (2 Kabelbus)
      • 7-bit Adressen für alle Geräte, Mechanismus zum Auflösen von Bus-Konflikten im TWI-Protokoll
      • bis zu 400 kHz Datentransfer Geschwindigkeit

    Analog Digital Converter

    • 10-bit Auflösung, +/-2 LSB Genauigkeit, 65 – 260 µs Konvertierungzeit, 8 Eingangskanäle zum Multiplexer, verschiedene Startmöglichkeiten
    • Operation: konvertiert analoge Eingangsspannung zu 10 bit Digitalwert durch sukzessives Annähern
    • im Sleep Modus betreibbar, um Rauschen der CPU zu reduzieren

    Analog Comparator

    • Funktion : vergleicht Spannungen am Pin AIN0 und Pin AIN1, ist U an AIN0  größer als U an AIN1, dann wird ACO gesetzt
    • kann die Input Capture Funktion von Timer/Counter1 schalten
    Content signature