Praktikum Mikrocomputertechnik

Größe: px
Ab Seite anzeigen:

Download "Praktikum Mikrocomputertechnik"

Transkript

1 Praktikum Mikrocomputertechnik Versuch 5M: Labor: Termin der Durchführung: IE-Labor oder DT-Labor 1-Wire Thermometer Teilnehmer: Gruppe: Semester: Student 1: Student 2: Testat: Datum: Bemerkungen: Unterschrift: Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

2 Praktikum Mikrocomputertechnik Versuch 5M: 1-Wire Thermometer 1) Allgemeine Beschreibung Auf dem Rapid-IO Board befindet sich ein digitaler Temperatursensor DS18S20 von Maxim. Der Baustein wird über einen Eindraht-Bus (1-Wire) an den XC164 angebunden. Der Sensor beinhaltet einen 9-Bit AD-Wandler, mit dem ein Temperaturbereich von -10 C bis +55 C abgedeckt werden kann. Die Standard-Auflösung beträgt hierbei 0,5 C. Des weiteren hat jeder Baustein eine eindeutige Seriennummer, die ebenfalls über den Eindraht-Bus ausgelesen werden kann. Aufgrund der Komplexität des Protokolls sind schon einige Unterprogramme vorgegeben. Diese sind in Keil (V3) Projekt PMC_V5M.zip auf der Labor-Homepage abgelegt. Folgende Funktionen sollen realisiert werden: Auf dem LC-Display soll in der ersten Zeile die ID des Bausteins und in der zweiten Zeile die aktuelle Temperatur angezeigt werden. Binden Sie Ihre Software aus V2 in das Projekt mit ein. Dies können Sie entweder über ein include machen oder die benötigten Unterprogramme einfach an das Ende der MAIN-Sektion kopieren. Sollten Sie im LCD-Versuch Timer T3 für das Timing verwendet haben, müssen Sie dies ändern oder die gegebenen Unterprogramme anpassen, da hier dieser Timer für den 1µs Takt verwendet wird. Für die Ansteuerung des 1-Wire Bausteins sind die folgenden Unterprogramme vorgesehen: ow_init_t3 Initialisiert Timer T3 um einen 1µs Takt zu generieren. Der Timer wird manuell bedient, da ein 1µs Takt mit Interrupt zu viel Overhead erzeugt. ow_wait Warteprogramm auf µs-basis... die Anzahl der µs wird in R15 übergeben. ACHTUNG: Programm macht einen Fehler von ca. +2,5 µs (Overhead). Dieser rührt aus dem Unterprogramm-Aufruf und der Initialisierung der Register etc. ow_init Initialisiert die Ports für die One-Wire Schnittstelle Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

3 ow_reset Liefert die Reset-Bedingung für den One-Wire Baustein. Dieser Reset muss vor jeder Kommunikation auf dem Bus ausgeführt werden. ow_read_byte Liest ein Byte vom One-Wire-Bus ow_write_byte Schreibt ein Byte an den One-Wire-Bus ow_convert Startet die Konvertierung der Temperatur und wartet bis der Baustein fertig ist und das Datenpaket zur Abholung bereit ist. ow_read_temp Startet die Konvertierung (durch Aufruf des Unterprogramms ow_convert und liest das unbearbeitete Datenpaket aus und legt es im Speicher (RAM: OW_Temp) ab. ow_read_rom Liest die Familiy ID, Seriennummer und CRC-Byte aus dem DS18S20 aus und legt diese im Speicher (RAM: OW_ROM) ab. create_ascii_id Konvertiert die im µc Speicher befindliche Hex-Zahl der Device ID in AS- CII Zeichen und legt diese ebenfalls im RAM (OW_ID) ab. create_ascii_temp Konvertiert die beiden gelesenen Temperatur-bytes in ASCII-Zeichen um und legt diese als Text-String ebenfalls im Speicher ab (OW_ASCII_Temp) Folgende Aufgaben sind von Ihnen durchzuführen: Unterprogramm: Assemblerprogramm Flußdiagramm ow_init_t3 Gegeben - ow_wait Gegeben Gegeben ow_init Gegeben - ow_read_byte Gegeben Gegeben ow_write_byte Gegeben Ihre Aufgabe ow_convert Gegeben Ihre Aufgabe ow_read_temp Gegeben Ihre Aufgabe ow_read_rom Ihre Aufgabe Ihre Aufgabe create_ascii_id Ihre Aufgabe Ihre Aufgabe create_ascii_temp Ihre Aufgabe Ihre Aufgabe ow_reset Gegeben Gegeben Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

4 2) Versuchsvorbereitung Dieser Versuch baut sehr stark auf Kenntnisse über die Schnittstelle zum Temperatursensor als auch auf das Verständnis der vorhandenen Programmstrukturen. Daher ist es unerlässlich sich in das Thema einzulesen und die Flußdiagramme vor Beginn der Programmierarbeit zu erarbeiten. Lesen Sie sich in das Datenblatt des DS18S20 (finden Sie auf der Internetseite des Labores wo sich auch die Versuchsbeschreibungen befinden) ein. Besonders wichtig ist das Protokoll, wie Daten übertragen werden, als auch der Inhalt und der Aufbau der Datenpakete. Leider werden Device ID und Temperatur nicht als ASCII Werte übertragen, sondern hexadezimal. Die Daten müssen also zunächst in auf dem Display darstellbare Zeichen umgewandelt werden. Im Anhang dieser Versuchsbeschreibung finden Sie die bereitgestellten Unterprogramme (wie sie auch im Projektfile auf der Homepage enthalten sind). Lesen Sie sich in die Funktionen ein und beachten Sie die notwendigen Übergabeparameter für die unterschiedlichen Funktionen. Zeichnen Sie die funktionalen Flussdiagramme der gegebenen Programme sowie die Flußdiagramme, für Unterprogramme, die sie noch selbst erstellen müssen mit Hilfe einer PC-Software. Die Ablaufpläne sollen keine graphische Repräsentation des Assembler Programms sein. Verwenden Sie allgemeinverständliche Ausdrücke, um den Ablauf abstrakt zu beschreiben. In den Flussdiagrammen sind die korrekten Symbole zu verwenden. Im Anhang finden Sie des weiteren extrahierte Informationen zum One-Wire Interface. Schlüsselinformationen wurden dort aus dem Datenblatt extrahiert. Es sind allerdings nicht alle für den Versuch notwendigen Informationen dort enthalten. Ein Studium des Datenblattes ist daher zwingend notwendig. 3) Versuchsdurchführung Die technische Umsetzung der Aufgabe wird weitestgehend Ihnen überlassen. Es gelten aber folgende Rahmenbedingungen: Erstellen Sie die geforderten Unterprogramme. Sie müssen auch ein Hauptprogramm erstellen, das die notwendige Ausgabe zyklisch auf das Display schreibt. Die ID muss nur 1x ausgegeben werden. Die AD-Wandlung der Temperatur benötigt ca. 700ms und kann so kontinuierlich konvertiert, verarbeitet und ausgegeben werden. Die gegebenen Unterprogramme sind mit entsprechenden Köpfen ausgestattet. Einen Rumpf des Kopfes sowie den Unterprogrammrahmen für die durch Sie zu erstellenden Softwarekomponenten finden Sie ebenfalls in der zur Verfügung gestellten Projektdatei. Codieren Sie Ihre Überlegungen und Flussdiagramme in Assembler und testen Sie die Software. Gehen Sie beim Testen schrittweise vor und probieren Sie auch Teillösungen aus. Das Suchen von Fehlern an der Gesamtlösung kann oft aufwendig sein. Erst wenn ein Teilprogramm zuverlässig funktioniert, widmen Sie sich dem folgenden Schritt. Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

5 Die Programme sind so zu schreiben, dass leicht Anpassungen durchgeführt werden können. Es sollen z.b. Equate-Anweisungen verwendet werden und deren Bedeutung/Funktion auch eindeutig kommentiert sein. Im RAM sind bereits die notwendigen Speicherbereiche für das Ablegen der Sensordaten sowie deren Umrechnung in ASCII vorhanden. Sollte der bereitgestellte Rahmen Ihnen nicht in das Konzept passen, dann können Sie existierende Unterprogramme sowie Speicherbereiche gerne für sich anpassen. Bitte markieren Sie aber solche Änderungen in den Ausdrucken. Die Software ist in den einzelnen Funktionsschritten zu dokumentieren, so dass auch Nicht-Assembler-Kenner den Funktionsablauf nachvollziehen können. Auf gute Lesbarkeit und Dokumentation der Software achten. Mit dem Logikport ist das Einlesen der Device-ID zu protokollieren. Fertigen Sie hierzu bitte zwei Screen-Shots an (Gesamtpaket ist zu lange, um leserlich dargestellt werden zu können; verwenden Sie die verfügbare Auflösung der Darstellung der Signale auf dem Bildschirm so gut wie möglich): Reset des 1-Wire Bus mit Senden des Kommandos. Markieren Sie den Reset-Vorgang und das Kommando-Byte, das an den Baustein geschickt wird. Senden der kompletten Device ID (incl. CRC und Family Code). Markieren Sie im Screenshot die zusammengehörigen Bytes sowie deren Werte. LSB, MSB und Leserichtung sind mit anzugeben. 4) Ausarbeitung Nach Beendigung des Versuches haben Sie alle Arbeiten erledigt. Sie können die Ausarbeitung direkt nach dem Praktikumstermin abgeben. Die Ausarbeitung besteht aus folgenden Komponenten: Ausgefülltes Deckblatt Ausdruck der am PC erstellten Flussdiagramme Ausdruck der Assemblerdateien zur Durchsicht. Nicht verwendete Unterprogramme bitte vor dem Ausdruck entfernen! Gegebene Unterprogramme bitte mit ausdrucken Ausdruck der Logikport Diagramme für die geforderte Übertragung incl. Ihrer Anmerkungen Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

6 5) Anhang: 5.1) Vorgefertigte Unterprogramme Auf den folgenden Seiten finden Sie die gegebenen Unterprogramme. Alle diese Unterprogramme finden Sie in digitaler Form im vorbereiteten Projekt für diesen Versuch auf der Labor Homepage. Sollten für Ihr Konzept Anpassungen erforderlich sein, markieren Sie diese bitte in Ihrem Ausdruck für die Abgabe. ;################################################################################## ;# Unterprogramm: ow_init_t3 # ;# # ;# Initialisiert Timer T3 im einen 1µs Takt zu generieren # ;# Der Timer wird manuell bedient, da ein 1µs Takt mit Interrupt zu viel Overhead # ;# erzeugt # ;# Übergabewerte: - keiner - # ;# Rückgabewerte: - keiner - # ;# Zerstörte Register: - keine - # ;# Erstellt: 02. April 2015, Armin Schön # ;################################################################################## ow_init_t3 PROC NEAR mov RET GPT12E_T3CON, #0000$1000$1000$0000b ; Timer T3: Timer, PS:4, zählt runter, gestoppt ow_init_t3 ENDP ;################################################################################## ;# Unterprogramm: ow_wait # ;# # ;# Warteprogramm auf µs-basis... die Anzahl der µs wird in R15 übergeben. # ;# ACHTUNG: Programm macht einen Fehler von ca. +2,5 µs (Overhead) # ;# Basis ist eine normale Warteschleife ohne IRQ # ;# Übergabewerte: R15: Anzahl der µs, die gewartet werden soll # ;# Rückgabewerte: - keiner - # ;# Zerstörte Register: - keine - # ;# Erstellt: 26. März 2015, Armin Schön # ;################################################################################## ow_wait PROC NEAR PUSH R15 PUSH R14 ; Rette benötigte Register mov R14, #5 ; Multipliziere R15 mit 5 (5 Timer Steps = 1us) mulu R14, R15 mov GPT12E_T3, MDL ; Multiplikationsergebnis als Timer-Wert laden ; High-Word der Multiplikation wird ignoriert, da eine ; größere Zeit im aktuellen Kontext nicht notwendig ist. bclr GPT12E_T3CON_T3OTL bset GPT12E_T3CON_T3R ; Lösche Timer T3 OTL für aktuellen Durchgang ; Starte Timer ow_wait_on_t3: jnb GPT12E_T3CON_T3OTL, ow_wait_on_t3 ; Warte bis Output-Toggle-Latch gesetzt bclr GPT12E_T3CON_T3R ; T3 bis zum nächsten Aufruf anhalten POP R14 POP R15 ; Gesicherte Register zurück holen RET ; Rücksprung zum aufrufenden Programm ow_wait ENDP Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

7 ow_wait Timer vorab initialisieren, prescaler = 4 aber auf STOP Register R15, R14 sichern Timerwert * 5 1 µs (prescaler = 4 d.h. 200 ns) * 5 = 1µs Anfangszustand OTL = 0 starte Timer OTL = 0 = 0 = 1 Timer anhalten Register R1, R15 zurückspeichern ret Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

8 ;################################################################################## ;# Unterprogramm: ow_init # ;# # ;# Initialisiert die Ports notwendig für die One-Wire Schnittstelle # ;# Übergabewerte: - keiner - # ;# Rückgabewerte: - keiner - # ;# Zerstörte Register: - keine - # ;# Erstellt: 26. März 2015, Armin Schön # ;################################################################################## ow_init PROC NEAR extr #1 bset ODP4.1 ; Onw-Wire Pin auf Open-Drain bclr ow_pin ; Pin auf logisch "0" RET ow_init ENDP ;################################################################################## ;# Unterprogramm: ow_reset # ;# # ;# Liefert die Reset-Bedingung für den One-Wire Baustein # ;# Übergabewerte: - keiner - # ;# Rückgabewerte: - keiner - # ;# Zerstörte Register: Port 1, High Byte, Bit 7 # ;# Ausgabe: Auf LED 15 wird gelesener Rückgabewert ausgegeben # ;# Erstellt: 26. März 2015, Armin Schön # ;################################################################################## ow_reset PROC NEAR push R15 ; Rette benötigte Register push R0 bset ow_dir ; One-Wire auf Ausgang (und 0) mov R15, #500 ; warte 500µs bclr ow_dir ; One-Wire auf Eingang (und 1) mov R15, #65 ; warte 65µs bmov R0.0, ow_pin mov R15, #435 ; warte 435µs bmov P1H.7, R0.0 ; Gib Erfolg auf LED 15 aus pop R0 pop R15 ; Hole gerettete Register zurück RET ow_reset ENDP Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

9 ow_reset Register sichern log. 0 ausgeben 500 µs warten log. 1 ausgeben 65 µs warten 1-wire einlesen (R0.0) 435 µs warten LED on / off LED = 0 Reset OK LED = 1 Reset nicht OK Register rückspeichern ret nach erfolgreichem Reset ist der DS1820-Baustein bereit für weitere Kommunikation Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

10 ;################################################################################## ;# Unterprogramm: ow_read_byte # ;# # ;# Liest ein Byte vom One-Wire-Bus # ;# Übergabewerte: - keiner - # ;# Rückgabewerte: - RL0: Gelesenes byte # ;# Zerstörte Register: - R0 # ;# Erstellt: , Armin Schön # ;################################################################################## ow_read_byte PROC NEAR push R15 ; Rette benötigte Register push R1 mov R0, #0 ; Initialisiere Werteregister mov R1, #8 ; Initialisiere Bit-Zähler ow_rd_next_bit: bset ow_dir ; One-Wire auf Ausgang (und 0) mov R15, #1 ; warte 1µs bclr ow_dir ; One-Wire auf Eingang (und 1) mov R15, #8 ; warte 8µs bmov R0.8, ow_pin ; Bit vom Bus einlesen mov R15, #50 ; warte 50µs shr R0, #1 ; R0 Eingangsregister um 1 rechts sub R1, #1 ; Bitzähler dekrementieren jmp cc_nz, ow_rd_next_bit ; Nächstes Bit bis ein Byte komplett pop R1 pop R15 ; Hole gerettete Register zurück RET ow_read_byte ENDP Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

11 Lesevorgang für ein einziges Bit read_byte Register R15, R1 sichern Bit-Zähler (= 8) vorbesetzen Bit-Lesezyklus starten 1 µs warten Portrichtung auf Einlesen 8 µs warten Bit einlesen 50 µs warten eingelesenes Bit shiften Bit-Zähler - 1 Schleife 8 x nein Byte eingelesen Register R1, R15 zurückspeichern ret Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

12 ;################################################################################## ;# Unterprogramm: ow_write_byte # ;# # ;# Schreibt ein Byte an den One-Wire-Bus # ;# Übergabewerte: - RL0: zu schreibendes Byte # ;# Rückgabewerte: - keiner - # ;# Zerstörte Register: - keines - # ;# Erstellt: , Armin Schön # ;################################################################################## ow_write_byte PROC NEAR push R15 ; Rette benötigte Register push R0 push R1 mov R1, #8 ; Initialisiere Bit-Zähler ow_wr_next_bit: jb R0.0, ow_wr_1 ow_wr_0: bset ow_dir ; One-Wire auf Ausgang (und 0) mov R15, #65 ; warte 65µs bclr ow_dir ; One-Wire auf Eingang (und 1) mov R15, #1 ; warte 65µs jmp cc_uc, ow_er_b_done ow_wr_1: bset ow_dir ; One-Wire auf Ausgang (und 0) mov R15, #2 ; warte 65µs bclr ow_dir ; One-Wire auf Eingang (und 1) mov R15, #60 ; warte 65µs jmp cc_uc, ow_er_b_done ow_er_b_done: shr R0, #1 ; R0 Eingangsregister um 1 rechts sub R1, #1 ; Bitzähler dekrementieren jmp cc_nz, ow_wr_next_bit ; Nächstes Bit bis ein Byte komplett pop R1 pop R0 pop R15 ; Hole gerettete Register zurück RET ow_write_byte ENDP Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

13 ;################################################################################## ;# Unterprogramm: ow_convert # ;# # ;# Startet die Konvertierung und wartet bis fertig # ;# Übergabewerte: - keiner - # ;# Rückgabewerte: - keiner - # ;# Zerstörte Register: - keines - # ;# Erstellt: , Armin Schön # ;################################################################################## ow_convert PROC NEAR push R15 ; Rette benötigte Register push R0 call ow_reset movb RL0, #0xCC ; Schreibt Kommando, um Adressierung zu überspringen call ow_write_byte ; Schreibt Kommando auf OW-Bus movb RL0, #0x44 ; Schreibt Kommando, um Konvertierung zu starten call ow_write_byte ; Schreibt Kommando auf OW-Bus ow_rd_until_done: bset ow_dir ; One-Wire auf Ausgang (und 0) mov R15, #1 ; warte 1µs bclr ow_dir ; One-Wire auf Eingang (und 1) mov R15, #8 ; warte 8µs jb ow_pin, ow_conv_done ; In der Schleife bleiben bis eine 1 gelesen wird mov R15, #5000 ; 5ms Zeit geben jmp ow_conv_done: cc_uc, ow_rd_until_done ; Erneut lesen, bis '1' pop R0 pop R15 ; Hole gerettete Register zurück RET ow_convert ENDP Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

14 ;################################################################################## ;# Unterprogramm: ow_read_temp # ;# # ;# Startet Konvertierung, wartet bis fertig und legt Ergebnis im Speicher ab # ;# Übergabewerte: - keiner - # ;# Rückgabewerte: - 8-Byte-Ergebnis im RAM (OW_ROM) # ;# Zerstörte Register: - keines - # ;# Erstellt: , Armin Schön # ;################################################################################## ow_read_temp PROC NEAR push R15 ; Rette benötigte Register push R0 push R1 mov R15, #OW_Temp ; Lade Startwert für zu schreibenden Speicherbereich mov R1, #9 ; Zähler für zu lesende Bytes call call ow_convert ow_reset movb RL0, #0xCC ; Schreibt Commando, um Addressierung zu überspringen call ow_write_byte ; Schreibt Kommando auf OW-Bus movb RL0, #0xBE ; Schreibt Kommando, um das Scratchpad zu lesen call ow_write_byte ; Schreibt Kommando auf OW-Bus ow_read_sp_next_byte: call ow_read_byte movb [R15], RL0 ; Schreibe Byte in RAM-Bereich add R15, #1 ; Pointer auf nächste Speicherstelle sub R1, #1 ; Alle Bytes eingelesen? jmp cc_nz, ow_read_sp_next_byte pop R1 pop R0 pop R15 ; Hole gerettete Register zurück RET ow_read_temp ENDP Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

15 5.2) Elektrische Informationen zum 1-Wire Bus Der 1-Wire Bus besteht, wie der Name schon sagt, nur aus einer einzigen Datenleitung. An dieser einen Leitung können Teilnehmer angeschlossen sein. Diese Topologie ist eine strikte Master/Slave Organisation. Vom Master werden alle Kommunikationen, egal ob senden oder empfangen, initiiert und auch zeitlich getriggert. Über die individuelle Device ID (Seriennummer) kann der Master alle Busteilnehmer gezielt ansprechen. Über ein bestimmtes Protokoll kann der Master auch herausfinden, wie viele Bausteine und mit welcher individuellen Adresse am Bus angeschlossen sind. Neben der Device-ID gibt es auch noch eine Familiy-ID über die der Master erfährt, um welchen Sensor-Typ es sich handelt. In unserem Versuch ist nur ein einzelner Maxim DS18S20 angeschlossen. Das relativ aufwendige Suchen nach Busteilnehmern kann also entfallen. Der Master in unserem System ist der XC164. Er ist also verantwortlich für die gesamte Kommunikation, die auf dem Bus stattfindet. Da es sich um einen Eindraht-Bus handelt, müssen sowohl Master als auch Slave diesen Bus treiben können. Hierzu wird ein einfaches Verfahren angewendet. Alle Busteilnehmer haben einen Open-Kollektor- bzw. Open-Drain-Ausgang. Sie können das Signal also nur auf GND ziehen. Den Pegel für den elektrischen High-Pegel übernimmt ein Pull-Up Widerstand von typisch 4,7kW. Dieser ist selbstverständlich auf dem Board vorhanden. Funktionsweise beim Schreiben auf 1-wire-Bus Mit dem Öffnen / Schließen des Bustreibers (im Portpin) durch den direction port DP wird das Potential am 1-wire-Bus gesteuert: DP = 0 Treiberausgang floatet, d.h. pull-up-widerstand zieht nach log. 1 DP = 1 Treiber durchgeschalten, d.h. 1-wire-Bus wird nach log. 0 gezogen GND DP pull up Vcc 1-wire-Bus Temperatursensor DS1820 Abbildung: Treiber des µc mit one-wire incl. Pull-Up und Sensor Der Pin am µc, der für die Kommunikation mit dem 1-Wire Bus zuständig ist, ist der Port 4.1. Dieser Port muss im Register ODP4 (Extended Special Function Register!) auf '1' gesetzt werden, um den Treiber als Open-Drain auszuführen. Der Einfachheit halber wird der Output P4.1 auf logisch '0' gesetzt und bleibt im weiteren Verlauf unverändert. Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

16 Nun kann mit dem Direction-Port der Port 4.1 auf Ausgang geschaltet werden und dieser treibt eine logische '0' auf dem Bus. Wenn der DP4.1 nun auf Eingang geschaltet wird, übernimmt der externe Pull-Up die Aufgabe, die logische '1' zu treiben. Der Pin am µc kann nun direkt verwendet werden, um im Lesemodus die Antwort des 1-Wire Teilnehmers zu lesen. 5.3) Timing Informationen des 1-Wire Buses Im folgenden sehen Sie das Timing und die verschiedenen Buszugriffsarten, die sie im Versuch für die Kommunikation mit dem Temperatursensor benötigen. Die vollständigen Details können aus dem Datenblatt für den DS18S20 entnommen werden, das Sie auf der Homepage des Labors ebenfalls finden können. Vor jeder Kommunikation mit dem Baustein muss ein Reset-Puls initiiert werden. Dieser versetzt den 1-wire Bus und dessen Teilnehmer in einen definierten Zustand. Der Master (µc) zieht den Bus auf '0' und geht nach mindestens 480µs in den Lesemodus und der Pull-Up zieht den Bus nach logisch '1'. Nach spätestens 60µs antworten angeschlossene Busteilnehmer ihrerseits mit einem LOW auf dem Bus. Danach kann mit einem entsprechenden Kommando die gewünschte Kommunikation gestartet werden. Abbildung: Timing für Bus-Reset Nun kann die Kommunikation mit dem Baustein erfolgen. Zunächst muss der Master ein Kommando auf den Bus absetzen. Danach antwortet entweder der Busteilnehmer oder der Master sendet die entsprechenden Daten. In unserem Fall befindet sich nur ein Teilnehmer am Bus, so dass die gezielte Adressierung entfallen kann. Hierzu gibt es ein eigenes Bypass-Kommando ( Skip ROM ). Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

17 Soll ein Bit auf den Bus geschrieben werden (Kommando oder Daten), dann verhält sich der Busteilnehmer (Slave) passiv, und das korrekte Timing ist vom Master zu liefern. Es gibt während der Übertragung kein Feedback von dem Busteilnehmer(n). Abbildung: Timing das Schreiben eines Bits (Master auf Bus) Muss der Master vom Bus Daten lesen, die der Temperatursensor bereitstellt, dann wird ebenfalls das Timing durch den Master bestimmt. Der Master muss jedes Bit auf dem Bus initiieren. In einem definierten Zeitrahmen antwortet der 1-Wire Baustein auf dem Bus. In dieser Zeit muss der µc den Wert einlesen. Das Zeitfenster beträgt hier nur wenige µs und muss daher ziemlich genau erfolgen. Abbildung: Timing das Lesens eines Bits (Master vom Bus) Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

18 5.4) Kommunikation mit dem DS18S20 Für das Auslesen der ID und das Auslesen der Temperatur sind für unseren Versuch nur drei Kommunikations-Modi relevant. Diese sind das Auslesen der ID, das Starten einer A/D-Wandlung der aktuellen Temperatur und das Auslesen des sogenannten Scratchpads, das auch die beiden Bytes für die Temperatur enthält. Diese Abläufe sollen die folgenden drei Flussdiagramme auf Protokoll-Ebene erläutern. Für die ID und das Scratch Pad sind reine Lesevorgänge notwendig. Der Ablauf ist also sehr ähnlich: Read ID Read Scratchpad 1-Wire Reset 1-Wire Reset Command: Read ROM 33h Read from DS18S20: Family Code 1 Byte Read from DS18S20: Serial Number 6 Byte Read from DS18S20: CRC 1 Byte Bus Idle Abbildung: Lesen der Baustein Seriennummer Command: Skip ROM 0xCC Command: Read Scratch Pad 0xBE Read from DS18S20: Scratch Pad 8 Byte Read from DS18S20: CRC 1 Byte Bus Idle Abbildung: Lesen des Scratch Pads Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

19 Beim Auslesen der Temperatur muss die Wandlung der Daten abgewartet werden. Dies kann beim verwendeten Baustein bis zu 780ms dauern. Daher kann die Temperatur durchaus kontinuierlich ausgelesen werden. Die Konvertierungszeit von knapp einer Sekunde ist gleichzeitig eine akzeptable Aktualisierungszeit für die Temperaturausgabe auf dem Display. Convert Temp. 1-Wire Reset Command: Skip ROM 0xCC Command: Convert Temperature 0x44 Einzelnes Bit vom 1-Wire Bus lesen Nein Gelesenes Bit = '1' Ja Bus Idle Abbildung: Start der Temperaturkonvertierung 5.5) Interpretation der Datenpakete Wenn die Datenpakete vom DS18S20 eingelesen wurden und durch die entsprechenden Unterprogramme im RAM des µc abgelegt sind, können diese Daten nun interpretiert werden und als ASCII-Zeichen auf dem LCD ausgegeben werden. Wichtig bei der gesamten Kommunikation ist, dass das LSB zuerst gesendet wird. Dies bezieht sich auf das gesamte Datenpaket und nicht nur auf die einzelnen Bytes. Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

20 Sehen wir uns zunächst die Device ID an. Diese besteht aus insgesamt 8 Bytes: CRC ID, Byte 5 ID, Byte 4 ID, Byte 3 ID, Byte 2 ID, Byte 1 ID, Byte 0 Family ID MSB LSB Die Family ID ist beim DS18S20 grundsätzlich 0x10. Daran kann der µc erkennen, welche Art von Bausteinen am Bus hängen, um sie korrekt anzusprechen. Die mittleren sechs Byte liefern die individuelle Seriennummer (wird bei mehreren Bausteinen am Bus auch als Adresse verwendet). Das letzte gesendete Byte (aber erstes in der Darstellung) beinhaltet einen CRC Wert, mit dessen Hilfe die Richtigkeit der gesendeten Daten überprüft werden kann. Dieses Byte kann aber im Rahmen des Versuches ignoriert werden. Für Sie relevant sind eigentlich nur die mittleren sechs Bytes. Diese beinhalten die ID als HEX-Zahl. In dieser Form eignet sie sich nicht zur Darstellung auf dem LCD. Die Sechs Bytes müssen also zunächst in 12 ASCII-Zeichen umgewandelt werden. Wegen der Lesbarkeit wäre es vorteilhaft, wenn die Bytes durch Bindestriche getrennt auf dem Display dargestellt würden. z.b.: 00-E4-8C-DD-32-0F Hierzu teilen Sie die einzelnen Bytes in die oberen und unteren 4 Bit (verschieben und ausmaskieren). Für die Ziffern (0-9) addieren Sie nun einfach 0x30, und sie haben die jeweilige ASCII-Darstellung und für Buchstaben entsprechend 0x37 (A-F). Diese legen Sie am besten als Block im RAM ab. Sie können Ihre Textausgabe aus Versuch 2 verwenden, um den String komplett auf dem LCD darzustellen. Bei dem Inhalt des Scratch Pad wird die Temperatur ebenfalls als Hex-Wert geliefert. Da diese allerdings vorzeichenbehaftet ist, ist die Umwandlung in ASCII etwas komplexer. Sie erhalten hier 9 Bytes (incl. CRC): Byte 0 Temperature Low Byte Temperaturinformation Byte 1 Temperature High Byte Temperatur Vorzeichen Byte 2 Th Register or User byte 1 Byte 3 Tl Register or User byte 2 Byte 4 Byte 5 Byte 6 Reserved (0xFF) Reserved (0xFF) Count Remain Byte 7 Count per C Byte 8 CRC Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

21 Für uns relevant sind nur die beiden Temperatur-Bytes. (Byte 0 und Byte 1) LS Byte Temp. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 HS Byte S S S S S S S S Sign Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Das High-Byte wird vollständig zur Darstellung des Vorzeichens verwendet. Die Bits 7..1 stellen die Temperatur in vollen C dar. Achtung, diese Zahl ist vorzeichenbehaftet und muss entsprechend behandelt werden. Die Temperatur kann auch negativ sein! Das Bit 0 gibt noch an, ob die Nachkommastelle ',0' oder ',5' ist. Sie hat also die Wertigkeit 2-1, was aber leider nicht direkt durch eine Division umgerechnet werden kann. Wenn alles richtig umsetzt wird, dann könnte es in etwa so aussehen: Um zur ASCII-Darstellung zu kommen, könnte man sich die Vorgehensweise auf der folgenden Seite vorstellen. Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

22 Temp. To ASCII 1 LS-Byte [Bit 0] 0 Nachkommastelle: ',5' Nachkommastelle: ',0' LS-Byte um eine Stelle nach rechts shiften und die Bits 6..0 ausmaskieren => Temperatur-Byte MS-Byte [Bit 8..15] Vorzeichen = '-' Vorzeichen = '+' Zweierkomplement des Temperatur-Bytes berechnen Temperatur-Byte durch 10 dividieren Teilerergebnis + 0x30 => 10er Stelle in ASCII Teilerrest + 0x30 => 1er Stelle in ASCII Temperatur-Byte durch 10 dividieren Teilerergebnis + 0x30 => 10er Stelle in ASCII Teilerrest + 0x30 => 1er Stelle in ASCII ASCII-String im Speicher Ablegen DONE Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

23 6) Weitere Informationsquellen: 1. Infineon technologies; XC User s Manual, Volume 1 (of 2): System Units 2. Infineon technologies; XC User s Manual, Volume 2 (of 2): Peripheral Units 3. Infineon technologies; XC Data Sheet 4. Infineon technologies, C166S User Manual (Befehlssatz) G. Schmitt; Mikrocomputertechnik mit dem Controller C167, Oldenbourg Wissenschaftsverlag GmbH, München Maxim Datenblatt zum DS18S20 (auf der Labor-Homepage oder direkt bei Maxim-IC) Praktikum Mikrocomputertechnik V5M 1-Wire Thermometer

Praktikum Mikrocomputertechnik

Praktikum Mikrocomputertechnik Praktikum Mikrocomputertechnik Versuch 5j: PEC & ADC Labor: Termin der Durchführung: IE-Labor oder DT-Labor Teilnehmer: Gruppe: Semester: Student 1: Student 2: Testat: Datum: Bemerkungen: Unterschrift:

Mehr

Praktikum Mikrocomputertechnik

Praktikum Mikrocomputertechnik Praktikum Mikrocomputertechnik Versuch 5: Labor: Termin der Durchführung: IE-Labor und DT-Labor Ampelsteuerung als Automat Teilnehmer: Gruppe: Semester: Student 1: Student 2: Testat: Datum: Bemerkungen:

Mehr

Ausarbeitung eines Praktikumsversuches zum Design eines 1-Wire-Master-Controllers Falk Niederlein

Ausarbeitung eines Praktikumsversuches zum Design eines 1-Wire-Master-Controllers Falk Niederlein Großer Beleg Ausarbeitung eines Praktikumsversuches zum Design eines 1-Wire-Master-Controllers Falk Niederlein Folie 1 Gliederung 1 Allgemein 2 Architektur 3 1-Wire-Protokoll 4 Praktikumsversuch 5 Zusammenfassung

Mehr

USB > I2C- Bus Modul. Startet den I2C-Bus. Daten einlesen NACK senden

USB > I2C- Bus Modul. Startet den I2C-Bus. Daten einlesen NACK senden USB > I2C- Bus Modul Info Das USB > I2C-Bus Modul stellt eine Verbindung zwischen einen PC und dem I2C-Bus her. Über ein Terminal Programm können nun Daten zum I2C-Bus gesendet und vom I2C-Bus empfangen

Mehr

Arduino Kurs Das LC-Display. Stephan Laage-Witt FES Lörrach

Arduino Kurs Das LC-Display. Stephan Laage-Witt FES Lörrach Arduino Kurs Das LC-Display Stephan Laage-Witt FES Lörrach - 2018 Themen LC-Display zur Anzeige von Text Serieller Datenbus Ausgabe von Zeichen, Texten und Zahlen FES Lörrach Juli 2017 2 LC-Display zur

Mehr

LCD board EB

LCD board EB LCD board EB005-00-3 Inhalt 1. Über dieses Dokument...2 2. Allgemeine Information...3 3. Board-Layout...6 4. Schaltungsbeschreibung...7 Anhang 1 Schaltplan Copyright Matrix Multimedia Limited 2005 seite

Mehr

SMP Übung 8 - Lösungsvorschlag

SMP Übung 8 - Lösungsvorschlag 1. Aufgabe: A/D-Wandlermethode auswählen Eine analoge Eingangsgröße, die Temperatur, soll in dieser Aufgabe in ein digitales Ausgangssignal umgewandelt werden. Aus Rechnertechnologie 2 sind folgende Methoden

Mehr

Die Temperaturmessung mit dem Sensor LM75. Andreas Heller & Eduard Auer

Die Temperaturmessung mit dem Sensor LM75. Andreas Heller & Eduard Auer Die Temperaturmessung 14-14 mit dem Sensor LM75 Andreas Heller & Eduard Auer 2 Andreas Heller & Eduard Auer Unser Ablauf Einleitung Fakten über LM 75 I²C - Bussystem Pin Belegung des Sensors Adressen Programmierung

Mehr

Der I²C-Bus. Vorstellung des Inter-Integrated Circuit -Bus. Aufbau und Funktionsweise. Beispiel PortExpander am Arduino

Der I²C-Bus. Vorstellung des Inter-Integrated Circuit -Bus. Aufbau und Funktionsweise. Beispiel PortExpander am Arduino Der I²C-Bus Vorstellung des Inter-Integrated Circuit -Bus Aufbau und Funktionsweise Beispiel PortExpander am Arduino Weitere Anwendungsmöglichkeiten Was ist der I²C-Bus entwickelt von Philips Anfang der

Mehr

Die Temperaturmessung

Die Temperaturmessung Die Temperaturmessung Praktikum Embedded Software 28.11.2016 Ingo Hericks 1 Inhalt Anforderungen Der Temperatursensor LM75 Der I²C-Bus Temperatursensorplatine Hinweise zur Programmierung 28.11.2016 Ingo

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Mikrocomputertechnik Bernd-Dieter Schaaf Mit Mikrocontrollern der Familie 8051 ISBN 3-446-40017-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40017-6 sowie im Buchhandel

Mehr

HD44780-LC-Display am Atmel-AVR Mikrocontroller

HD44780-LC-Display am Atmel-AVR Mikrocontroller Fachbereich Elektrotechnik und Informatik Labor für Angewandte Informatik und Datenbanken Praktikum Automatisierung / Echtzeitregelung (BAU/BER) Prof.Dr.-Ing. Coersmeier HD44780-LC-Display am Atmel-AVR

Mehr

Der I²C-Bus. Bearbeitet von: Thomas Finke, EL5

Der I²C-Bus. Bearbeitet von: Thomas Finke, EL5 Der I²C-Bus Bearbeitet von: Thomas Finke, EL5 [email protected] Inhaltsverzeichnis 1. Entstehungsgeschichte des I²C-Bus...3 2. Technik der I²C-Bus...3 2.1 Hardware-Struktur...3 2.2 Das I²C-Protokoll...4

Mehr

Ansteuerung eines LCD-Screens

Ansteuerung eines LCD-Screens Ansteuerung eines LCD-Screens Marcel Meinersen 4. Mai 2013 Marcel Meinersen Ansteuerung eines LCD-Screens 4. Mai 2013 1 / 27 Inhaltsverzeichnis 1 Allgemeines Was ist ein LCD-Screen? LCD 162C LED Marcel

Mehr

DMXface ACTIVE SEND mit RS232

DMXface ACTIVE SEND mit RS232 DMXface ACTIVE SEND mit RS232 Für DMXface FW Version ab 5.07 Allgemeines... 2 Einstellen des ACTIVE Send für RS232 Port 1... 3 Daten Sendungen vom DMXface... 4 DMX Daten... 4 Infrarot Empfang... 4 Änderungen

Mehr

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg Hardware PCI-Bus Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 Hardware PCI-Bus 1/23 2008-08-06 Übersicht Inhalt:

Mehr

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg Hardware PCI-Bus Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2007/2008 Hardware PCI-Bus 1/23 2007-10-26 Übersicht Inhalt:

Mehr

Arduino Kurs Bits und Bytes. Stephan Laage-Witt FES Lörrach

Arduino Kurs Bits und Bytes. Stephan Laage-Witt FES Lörrach Arduino Kurs Bits und Bytes Stephan Laage-Witt FES Lörrach - 2018 Themen Digitale Eingabe Bit, Byte und Wort Reaktionszeittester FES Lörrach Juli 2017 2 Was ist ein Bit? Ein Bit ist die kleinste Informationseinheit

Mehr

Zusatzanleitung. MPR-1 I²C-Protokoll. Version 1.01

Zusatzanleitung. MPR-1 I²C-Protokoll. Version 1.01 Zusatzanleitung MPR-1 I²C-Protokoll DE Version 1.01 Inhalt Inhalt 1. I²C Allgemein... 1 1.1 Beschreibung... 1 1.2 Konfiguration... 1 2. I²C-Protokoll des Drucksensormoduls MPR-1... 2 2.1 Parameter... 2

Mehr

Praktikum Mikrocomputertechnik

Praktikum Mikrocomputertechnik Praktikum Mikrocomputertechnik Versuch 3: Labor: Termin der Durchführung: Ansteuerung eines alpha-numerischen LC-Display über Ports des XC164 IE-Labor oder DT-Labor Teilnehmer: Gruppe: Semester: Student

Mehr

SMP Übung 9 - Lösungsvorschlag

SMP Übung 9 - Lösungsvorschlag 1. Aufgabe: Sieben Segment Anzeigen, Multiplexing, a) Bestimmung der Zeichenkodierung Bei der Zeichenkodierung ist zu beachten, dass ein Low-Pegel auf der Leitung PDA(j) (in Verbindung mit einem Low- Pegel

Mehr

Serielle Kommunikation - Kodierung

Serielle Kommunikation - Kodierung Serielle Kommunikation - Kodierung (1.) Erstellen Sie nachfolgende Klasse: Dabei haben die Methoden folgende Funktionen: exists(): Überprüft, ob eine serielle Schnittstelle existiert getproperties(): Liefert

Mehr

Projektlabor. LCD Ansteuerung

Projektlabor. LCD Ansteuerung Projektlabor LCD Ansteuerung Contents 1 LCD 3 2 Hardware des Displays 3 2.1 Hardware............................... 3 2.2 Verbindung.............................. 4 3 Softwareansteuerung 6 4 Quellen 10

Mehr

Arduino Nano. Hello World per LED On-Board LED (Pin D13) Beispiel: Arduino IDE / Beispiele / Basics / Blink 5 / 20

Arduino Nano. Hello World per LED On-Board LED (Pin D13) Beispiel: Arduino IDE / Beispiele / Basics / Blink 5 / 20 Inhalt Inbetriebnahme Arduino Nano Einführung I2C Bus Inbetriebnahme Real-Time-Clock DS1307 (I2C) Inbetriebnahme 4x 7-Segment Anzeige TM1637 Kombination RTC mit 7-Segment Anzeige => Uhr 2 / 20 Arduino

Mehr

10 Versuch Nr Anmerkungen zum Versuch Nr. 8

10 Versuch Nr Anmerkungen zum Versuch Nr. 8 10 Versuch Nr. 8 10.1 Anmerkungen zum Versuch Nr. 8 Während der letzten 4 Versuche haben Sie sich mit dem detaillierten Rechner-Entwurf beschäftigt. Im letzten Versuch konnten Sie abschließend einen kleinen

Mehr

Remote-Objekt-Überwachung. von Jan Schäfer und Matthias Merk

Remote-Objekt-Überwachung. von Jan Schäfer und Matthias Merk Remote-Objekt-Überwachung von Jan Schäfer und Matthias Merk Aufgabenstellung Steuerung von Sensoren zur Remote Objektüberwachung mit einem µc PIC16F874. Welcher Sensor hat gemeldet? Die Überwachung Mehrere

Mehr

1.9 Atmega-Programmierung in ASM/LED-Ziffernanzeige

1.9 Atmega-Programmierung in ASM/LED-Ziffernanzeige 1.9 Atmega-Programmierung in ASM/LED-Ziffernanzeige 1.9.1 Idee Bei der Programmentwicklung braucht man es ab und zu, dass man sich an bestimmten Stellen des Programms Variablenwerte anzeigen lässt. Bei

Mehr

Mikrocomputertechnik. Thema: Serielle Schnittstelle / UART

Mikrocomputertechnik. Thema: Serielle Schnittstelle / UART Mikrocomputertechnik Thema: Serielle Schnittstelle / UART Parallele vs. serielle Datenübertragung Parallele Datenübertragung Mehrere Bits eines Datums werden zeitgleich mittels mehrerer Datenleitungen

Mehr

LCD-Ansteuerung mit MikroForth

LCD-Ansteuerung mit MikroForth Das Attiny-Projekt LCD-Ansteuerung mit MikroForth 1 LCD-Ansteuerung mit MikroForth Zu unserer Attiny-Platine wird standardmäßig ein kleines LCD von der Firma Pollin beigelegt. Dieses ist auf eine kleine

Mehr

Bus Manuals SPI I2C. Busse und Sensoren. Twix. Chaos Computer Club Cologne Twix

Bus Manuals SPI I2C. Busse und Sensoren. Twix. Chaos Computer Club Cologne Twix Twix e.v. http://koeln.ccc.de 2017-10-30 Outline 1 Bus Basics Parallele Busse Serielle Busse 2 SPI SPI mit dem STM32 HAL 3 I2C Praxis I2C Anwenden 1 Bus Basics Parallele Busse Serielle Busse 2 SPI SPI

Mehr

1. TÜ-Zusammenfassung zum Modul Computersysteme

1. TÜ-Zusammenfassung zum Modul Computersysteme 1. TÜ-Zusammenfassung zum Modul Computersysteme Kurzzusammenfassung 1. Kapitel Netzteil: Aufbau: Bereitgestellte Spannungen: 12V, -12V, 5V, -5V und 3.3V Leistung: Da bei Transformatoren die übertragbare

Mehr

Anleitung zum Einstieg in die Assemblerprogrammierung des Mikrocontroller C167

Anleitung zum Einstieg in die Assemblerprogrammierung des Mikrocontroller C167 Anleitung zum Einstieg in die Assemblerprogrammierung des Mikrocontroller C167 1. Einführung was Sie alles brauchen Diese Anleitung soll Ihnen einen möglichst einfachen Einstieg in die Programmierung des

Mehr

Manual RS232/485 ISO Artikelnummer: 8410.CON2

Manual RS232/485 ISO Artikelnummer: 8410.CON2 Manual /485 ISO Artikelnummer: 8410.CON2 Stand V15/ 22.4.2005 Inhaltsverzeichnis 1 ALLGEMEINES 3 2 LAGERBEDINGUNGEN 4 3 BETRIEBSBEDINGUNGEN 4 4 BLOCKSCHALTBILD 5 5 HARDWARE-BESCHREIBUNG 6 6 BEISPIELHAFTE

Mehr

Mikroprozessortechnik Grundlagen 1

Mikroprozessortechnik Grundlagen 1 Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega28 Progammierung in C - Vergleich C und C++ - Anatomie eines µc-programmes

Mehr

Aufgabe 1 Entwicklung einer Virtuellen Maschine

Aufgabe 1 Entwicklung einer Virtuellen Maschine Aufgabe 1 Entwicklung einer Virtuellen Maschine Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Entwicklung

Mehr

11. Die PC-Schnittstelle

11. Die PC-Schnittstelle PC-Schnittstelle Funktion -1. Die PC-Schnittstelle.1. Funktion Die folgenden Angaben gelten ohne Einschränkung für den PC, PC-XT, PC-AT, AT-386, AT-486 und kompatible Rechner. Sie sind nur für jene interessant,

Mehr

Programmierübungen in Assembler

Programmierübungen in Assembler Programmierübungen in Assembler 1. LED Ein-/Ausschalten Verwendet: Ports An Portpin P3.0 ist eine LED angeschlossen. An Portpin P1.0 ist ein Taster angeschlossen. a) Schreiben Sie ein Programm, welches

Mehr

C-DIAS-Serielles-Interface CSI 021

C-DIAS-Serielles-Interface CSI 021 C-DIAS-Serielles-Interface CSI 021 Das CSI 021 ermöglicht die Kommunikation über 2 unabhängige UART s. Es stehen 2 x RS232/485/422 Ausgänge zur Verfügung. Diese Ausgänge sind per Software umschaltbar.

Mehr

Arbeitsblatt Nr.19: RFID Kit

Arbeitsblatt Nr.19: RFID Kit Aufgabe: Mit Hilfe eines Arduino-Mikrocontrollers soll ein RFID-TAG ausgelesen werden. Sofern es sich um den richtigen TAG handelt, soll eine Leuchtdiode für 5 Sekunden leuchten. Material: Arduino-Board

Mehr

Aufgabe 4, I2C Kommunikation mit Temperatursensor. Labor Mikrocontroller mit NUC130

Aufgabe 4, I2C Kommunikation mit Temperatursensor. Labor Mikrocontroller mit NUC130 Aufgabe 4, I2C Kommunikation mit Temperatursensor Labor Mikrocontroller mit NUC130 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber 09.12.2016 Gruppe A Inhalt 1 Einführung...

Mehr

Anwendungen der Mikrocontrollertechnik

Anwendungen der Mikrocontrollertechnik Anwendungen der Mikrocontrollertechnik Projektarbeit WS15/16 Prof. Dr.-Ing. Dietmar A. Brück Jannik Haupenthal 3601110 Stichpunkte: Entwicklung der Aufgabenstellung zu der Erweiterungsplatine 7 Segment

Mehr

Beschreibung RS232-Protokoll für POWER-TRAP Fotovoltaik-Wechselrichter (ab Protokollversion ENS1 = 5 und ENS2 = 6)

Beschreibung RS232-Protokoll für POWER-TRAP Fotovoltaik-Wechselrichter (ab Protokollversion ENS1 = 5 und ENS2 = 6) Beschreibung RS232-Protokoll für POWER-TRAP Fotovoltaik-Wechselrichter (ab Protokollversion ENS1 = 5 und ENS2 = 6) 1. Allgemein Da die RS232-Schnittstelle elektrisch auch mit der RS485-Schnittstelle verbunden

Mehr

Microcomputertechnik

Microcomputertechnik Microcomputertechnik mit Mikrocontrollern der Familie 8051 Bearbeitet von Bernd-Dieter Schaaf 2. Auflage 2002. Buch. 230 S. Hardcover ISBN 978 3 446 22089 8 Format (B x L): 16 x 22,7 cm Gewicht: 407 g

Mehr

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikrocomputertechnik Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikroprozessor-Achritekturen Folie 2 Mikroprozessor-Achritekturen Klassifizierung anhand Wortbreite CPU-Architektur und Busleitungen

Mehr

Übungsaufgaben. Stand

Übungsaufgaben. Stand AUTOMATISIERUNGSTECHNIK AU1 ÜBUNGSAUFGABEN 1 Übungsaufgaben Stand 1.1 5. 5. 2008 1. Lottozahlen. Schreiben Sie ein Programm zum Ziehen von Lottozahlen. Darstellung auf zwei Siebensegmentanzeigen. Die Anzeigen

Mehr

Interrupts im Handbuch des ATmega128 gründlich lesen.

Interrupts im Handbuch des ATmega128 gründlich lesen. 1 Versuch 1 1.1 Ziel Ziel des ersten Versuchs ist es die USART-Schnittstelle kennenzulernen, sowie Assemblerprogramme um eine interaktive Eingabe zu erweitern. Zu diesem Zweck werden vom Praktikums-PC

Mehr

Modbus TCP/IP Gateway für 1-Wire Sensoren

Modbus TCP/IP Gateway für 1-Wire Sensoren Modbus TCP/IP Gateway für 1-Wire Sensoren Der Modbus Gateway verbindet 1-Wire Sensoren wie DS18S20 und DS18B20 mit Ihrem Heimnetzwerk. Er verfügt über eine 1-Wire Schnittstelle zu den Sensoren und eine

Mehr

Applikationen zur Mikrocontroller-Familie

Applikationen zur Mikrocontroller-Familie Applikationen zur 8051- Mikrocontroller-Familie Band 1 Otmar Feger Jürgen Ortmann Siemens Aktiengesellschaft Inhaltsverzeichnis 9 Inhaltsverzeichnis Vorwort zu MC-Tools 13 und MC-Tools 16 5 Inhaltsverzeichnis

Mehr

Mikrocomputertechnik mit Controllern der AtmelAVR-RISC-Familie

Mikrocomputertechnik mit Controllern der AtmelAVR-RISC-Familie Mikrocomputertechnik mit Controllern der AtmelAVR-RISC-Familie Programmierung in Assembler und C - Schaltungen und Anwendungen von Prof. Dipl.-Ing. Günter Schmitt 4., korrigierte Auflage Oldenbourg Verlag

Mehr

Klausur "Informatik I" vom Teil "Rechnerstrukturen"

Klausur Informatik I vom Teil Rechnerstrukturen Seite 1 von 6 Seiten Klausur "Informatik I" vom 20.2.2001 Teil "Rechnerstrukturen" Aufgabe 1: Binäre Informationsdarstellung (18 Punkte) 1.1 Gleitkommazahlen: Gegeben sei eine 8-bit Gleitkommazahl-Darstellung

Mehr

Tag 4 7 Segment-Anzeige, File Include, LC-Display

Tag 4 7 Segment-Anzeige, File Include, LC-Display Tag 4 7 Segment-Anzeige, File Include, LC-Display 09/01/10 Fachbereich Physik Institut für Kernphysik Bastian Löher, Martin Konrad 1 Die 7-Segment-Anzeige Eigentlich 8-Segment-Anzeige Gesteuert über 8

Mehr

U5-2 Register beim AVR-µC

U5-2 Register beim AVR-µC U5 4. Übungsaufgabe U5 4. Übungsaufgabe U5-2 Register beim AVR-µC U5-2 Register beim AVR-mC Grundlegendes zur Übung mit dem AVR-µC 1 Überblick Register Beim AVR µc sind die Register: I/O Ports Interrupts

Mehr

Datentechnik. Prinzipieller Aufbau eines Schnittstellenbausteins

Datentechnik. Prinzipieller Aufbau eines Schnittstellenbausteins Prinzipieller Aufbau eines Schnittstellenbausteins DB /CS A0-Ai R/W Reset Takt Int IntAck zum µp Datenbus Puffer Steuerung Interruptsteuerung & IF Statusregister IE Steuerregister Befehlsregister Datenregister

Mehr

Adressierung von Speichern und Eingabe- Ausgabegeräten

Adressierung von Speichern und Eingabe- Ausgabegeräten Adressierung von Speichern und Eingabe- Ausgabegeräten Adressdecodierung Die Busstruktur von Prozessorsystemen verbindet die Bauteile über gemeinsame Leitungen. Auf dem Bus darf zu einer Zeit immer nur

Mehr

Mini- Mikroprozessor-Experimentier-System. Version 1.0b vom :21. mit einem 8051-Mikrocontroller

Mini- Mikroprozessor-Experimentier-System. Version 1.0b vom :21. mit einem 8051-Mikrocontroller Mini- Mikroprozessor-Experimentier-System mit einem 8051-Mikrocontroller Version 1.0b vom 04.10.2004 14:21 Inhalt 1 Einleitung...3 2 Hardware...4 2.1 Übersicht...4 2.2 Mikrocontroller AT89C51RB2...5 2.3

Mehr

Versuch D3: Busse, Speicher und Ampelsteuerung mit Speicher

Versuch D3: Busse, Speicher und Ampelsteuerung mit Speicher Versuch D3: Busse, Speicher und Ampelsteuerung mit Speicher Version D3_16 vom 25.05.2016 Ziel dieses Versuches: Entwicklung einer Ablaufsteuerung mit einem 32 * 4 bit Speicherbaustein, um eine flexible

Mehr

D.1 Vorbereitung. Teil D Analog-Digital-Wandler 1

D.1 Vorbereitung. Teil D Analog-Digital-Wandler 1 D.1 Vorbereitung So wird der Analog-Digital-Wandler des Mikrocontrollers ATmega328P initialisiert: ADMUX = _BV(REFS0); ADCSRA = _BV(ADEN) _BV(ADPS2) _BV(ADPS1) _BV(ADPS0); Der Analog-Digital-Wandler ist

Mehr

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer Übung RA, Kapitel 1.5 1. Beantworten Sie bitte folgende Repetitionsfragen 1. Beschreiben Sie in eigenen Worten und mit einer Skizze die Schichtung einer Multilevel Maschine. Folie 5, rechte Seite 2. Welche

Mehr

qfix ASCII-Protokoll

qfix ASCII-Protokoll www.qfix.de qfix ASCII-Protokoll Referenz qfix Dokument Nr. D100502R1 Inhaltsverzeichnis 1 Einleitung 3 1.1 Referenz................................... 3 2 qfix ASCII Protokoll 4 2.1 Verbindung und Zeichensatz.........................

Mehr

C++ mit dem Arduino (Uno und Mega2560)

C++ mit dem Arduino (Uno und Mega2560) C++ mit dem Arduino (Uno und Mega2560) 1. Toolchain Als toolchain bezeichnet man die Reihe von Software, die nötig ist um den Prozessor zu programmieren, das Ergebnis draufzuladen und dann zu testen. Hier

Mehr

Displaysteuerung: ATmega32u4. HTL St.Pölten. EL Autor: Kuran. Displaysteuerung Fachspezifische Softwaretechnik 2

Displaysteuerung: ATmega32u4. HTL St.Pölten. EL Autor: Kuran. Displaysteuerung Fachspezifische Softwaretechnik 2 isplaysteuerung Fachspezifische Softwaretechnik 2 Skriptum 208 HTL St.ölten Elektronik und Technische Informatik EL Autor: Kuran isplaysteuerung: Für einen µc des Typs ATmega32u4, an dem ein isplay (Hitachi

Mehr

Laborübung 3. Latches, Flipflops, Counter

Laborübung 3. Latches, Flipflops, Counter Laborübung 3 Latches, Flipflops, Counter Teil 1 Abbildung 1 zeigt den Schaltkreis eines gated D-Latches. In Listing 1 wird exemplarisch ein Stück VHDL-Code vorgestellt, der den abgebildeten Schaltkreis

Mehr

Technische Informatik I - HS 18

Technische Informatik I - HS 18 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 18 Musterlösung zu Übung 3 Datum : 25.-26. Oktober 2018 Aufgabe 1: Wurzelverfahren nach Heron Das

Mehr

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Martin Schulz Einführung in die Rechnerarchitektur Wintersemester 2017/2018 Lösungsvorschlag

Mehr

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Microcontroller Kurs 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Was ist ein Microcontroller Wikipedia: A microcontroller (sometimes abbreviated µc, uc or MCU) is a small computer on a single integrated

Mehr

RGB-Sequenzer RS232 RS485 MDX512 AD / IO Platine

RGB-Sequenzer RS232 RS485 MDX512 AD / IO Platine RGB-Sequenzer RS232 RS485 MDX512 AD / IO Platine HARDWARE Platine Osram LED controller 85 x 130 mm, Industriestandard, doppelseitig, Lötstop, Positionsdruck Halterung 4 Bohrlöcher 2,8 mm Durchmesser Ein-

Mehr

SPI-Bus. 282 Ergänzung zu Kapitel 10

SPI-Bus. 282 Ergänzung zu Kapitel 10 282 Ergänzung zu Kapitel 10 10.21. SPI-Bus Allgemeines Beim SPI-Bus (Serial Peripheral Interface) handelt es sich um einen synchronen 3-Draht Bus mit einer zusätzlichen Steuerleitung (/SS) (siehe Abbildung

Mehr

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

Zähler- und Zeitgeber-Baugruppen

Zähler- und Zeitgeber-Baugruppen Zähler- und Zeitgeber-Baugruppen Sinn: häufig müssen Zeitbedingungen eingehalten werden z.b.: einige ms warten, Häufigkeit von Ereignissen zählen etc... Lösung: 1.) Zeitschleifen = Programm abarbeiten,

Mehr

Projektdokumentation: DCF 77 Funkuhr

Projektdokumentation: DCF 77 Funkuhr Projektdokumentation: DCF 77 Funkuhr Seite 1 von 8 DCF-77 Signalanalyse Die DCF-77 Signale werden von einem Sender in Mainflingen (ca. 25 km südöstlich von Frankfurt am Main) von der Physikalisch-Technischen

Mehr

Speichern von Zuständen

Speichern von Zuständen Speichern von Zuständen Erweiterung eines R S Latch zu einem D Latch (D=Data, C=Clock) R S altes Q neues Q 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 R S C D altes Q neues Q 0 0 0 0 0 1 0 1 0 0 1

Mehr

Praktikum Grundlagen von Hardwaresystemen Sommersemester Versuch 6: Computergrafik und Sprites

Praktikum Grundlagen von Hardwaresystemen Sommersemester Versuch 6: Computergrafik und Sprites Praktikum Grundlagen von Hardwaresystemen Sommersemester 2007 Versuch 6: Computergrafik und Sprites 28. Juni 2007 Fachbereich 12: Informatik und Mathematik Institut für Informatik Professur für Technische

Mehr

Parallele Datenübertragung mit Hilfe von WinSim85. über einen reellen PC Port

Parallele Datenübertragung mit Hilfe von WinSim85. über einen reellen PC Port Parallele Datenübertragung mit Hilfe von WinSim85 über einen reellen PC Port Seite: 1 Hardware: Bei der Programmierung der parallelen Schnittstelle eines IBM PC s mit der Simulationssoftware WinSim85 gibt

Mehr

Die Robo-TX RS-485 Schnittstelle

Die Robo-TX RS-485 Schnittstelle Die Robo-TX RS-485 Schnittstelle Die Idee... Gleich nach dem Kauf des TX fiel mir in der Anleitung auf, dass auf den Extension-Anschlüssen nur die RS-485-Schnittstelle auf beiden vorkommt. Somit war klar,

Mehr

Protokoll TID v0.1 ( )

Protokoll TID v0.1 ( ) Einleitung Der Opel Radio-Display Bus ist ein serieller Bus, der ein Master Gerät, das Radio mit dem Slave Gerät, dem Triple Info Display oder dem Multi Info Display verbindet. Er basiert auf dem I²C Protokoll,

Mehr

1. Allgemein Technische Daten... 2

1. Allgemein Technische Daten... 2 Inhalt 1. Allgemein... 2 2. Technische Daten... 2 3. Beschreibung der s... 3 3.1. Allgemein... 3 3.2. Aufbau einer Übertragung... 3 3.2.1. Nur Daten... 3 3.2.2. s und Daten:... 3 3.2.3. s und Daten gemischt:...

Mehr

Der Magnetfeldsensor HMC5883L

Der Magnetfeldsensor HMC5883L Unter der Bezeichnung GY-273 wird ein preiswertes Modul (Preis unter 2 Euro) angeboten, mit dem Magnetfelder gemessen werden können. Herzstück dieses Moduls ist der Baustein HMC5883L. Hierbei handelt es

Mehr

Speicheraufbau des AT89C5131

Speicheraufbau des AT89C5131 Speicheraufbau des AT89C5131 Prinzip: - getrennter Programmspeicher (ROM) und Datenspeicher (RAM) - interner Speicher (auf dem Chip) und externer Speicher (Zusatzbausteine) Das Experimentalsystem hat keinen

Mehr

Manual SPI Module zum CARME-Kit

Manual SPI Module zum CARME-Kit Berner Fachhochschule Technik und Informatik EKT Labor für technische Informatik Manual SPI Module zum -Kit November 2010 Jürgen Schüpbach Inhaltsverzeichnis Inhaltsverzeichnis 1 Übersicht SPI Module...

Mehr

Carry Lookahead Adder

Carry Lookahead Adder Carry Lookahead Adder Mittels der Generate und Propagate Ausdrücke lässt ich dann für jede Stelle i der Carry (Übertrag) für die Stelle i+1 definieren: Für einen 4 Stelligen Addierer ergibt sich damit:

Mehr

ArduBlock Station 4 - Farbthermometer

ArduBlock Station 4 - Farbthermometer Temperatur zum Leuchten bringen Wie viele Menschen haben sich schon die Finger verbrannt, weil die Herdplatte noch heiß war? Oder haben angewidert das Gesicht verzogen, weil der Tee schon kalt war? Das

Mehr

Arduino Kurs Timer und Interrupts. Stephan Laage-Witt FES Lörrach

Arduino Kurs Timer und Interrupts. Stephan Laage-Witt FES Lörrach Arduino Kurs Timer und Interrupts Stephan Laage-Witt FES Lörrach - 2018 Themen Timer Interrupts Regelmäßige Aufgaben ausführen Exakte Zeitintervalle messen FES Lörrach Juni 2018 2 Exakte Zeiten sind gar

Mehr

JX6-INT1 Versions Update von V1.00 auf V1.24

JX6-INT1 Versions Update von V1.00 auf V1.24 JX6-INT1 Versions Update von V1.00 auf V1.24 Auflage 1.00 16. September 2002 / Printed in Germany Versions Update - 16. September 2002 JX6-INT1 - von V1.00 auf V1.24 Die Firma JETTER AG behält sich das

Mehr

Arduino für FunkAmateure

Arduino für FunkAmateure Arduino für FunkAmateure Arduino & graphische Programmiersprachen Workshop Sensoren aus ALLNET 4Arduino Set (ArdDevKIT1) Schaltung 1: Analoge Pins Schaltung 2: Digitale Pins Schaltung 3: Blinkende LED

Mehr

ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen

ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen Aufgabenstellung: - das beigefügte Assembler-Programm schrittweise ausführen - sich mit der Handhabung der Entwicklungswerkzeuge

Mehr

2017/01/23 15:50 1/5 Bedienung

2017/01/23 15:50 1/5 Bedienung 2017/01/23 15:50 1/5 Bedienung Bedienung (J.Müller, Hilfe zu JTCEMU) Das originale 2K-System Das 2 KByte große Betriebssystem bietet die wichtigsten Funktionen zur Eingabe und Verwaltung von BASIC-Programmen.

Mehr

TCP/IP ASCII Schnittstelle Programmierhandbuch

TCP/IP ASCII Schnittstelle Programmierhandbuch TCP/IP ASCII Schnittstelle Programmierhandbuch Version 3.0 1. Einleitung Das IRTrans ASCII Format dient der Ansteuerung von IRTrans Modulen (über den irserver oder Ethernetmodule mit IRDB bzw. LAN Controller

Mehr

Temperaturmodul. Software. Bedeutung der Leuchtdioden. Kanal-LEDs. System-LEDs. Start nach Reset

Temperaturmodul. Software. Bedeutung der Leuchtdioden. Kanal-LEDs. System-LEDs. Start nach Reset Temperaturmodul Software Bedeutung der Leuchtdioden Alle LED sind sog. Bicolor-LEDs, die, wie der Name nicht sagt, drei Farben anzeigen können. Rot, grün und gelb, wenn rot und grün gemeinsam aktiviert

Mehr

Handbuch Digi-Prog. Revision 1.0. Copyright c Welzel GbR Steinstrasse Giessen

Handbuch Digi-Prog. Revision 1.0. Copyright c Welzel GbR Steinstrasse Giessen Copyright c Welzel GbR Steinstrasse 56 35390 Giessen 16. August 2003 Inhaltsverzeichnis 1 Einleitung 1 2 Hardware-Beschreibung 1 2.1 Programmierstecker.......................... 2 2.2 SUB-D Buchse............................

Mehr

Beschreibung Modell Motorspindel

Beschreibung Modell Motorspindel Beschreibung Modell Motorspindel Allgemein : Mit dem Modell Motorspindel können sowohl Übungen im Bereich der Regelungstechnik als auch Aufgaben in der Controllertechnik mit allen gängigen Bussystemen

Mehr

MSP 430. Einführung. Was kann er? Hauptthemen. Wie sieht er aus? 64 / 100 polig. Was kann er? MSP 430 1

MSP 430. Einführung. Was kann er? Hauptthemen. Wie sieht er aus? 64 / 100 polig. Was kann er? MSP 430 1 MSP 430 Mixed Signal Microcontroller MSP 430 Einführung Der Mikrocontrollers MSP430 von Texas Instruments Das Entwicklungsboard MSP-STK 430A320 http://www.ti.com Texas Instruments 1 Texas Instruments 2

Mehr

Type ME23 ProfiNet Ethernet IP Modbus TCP

Type ME23 ProfiNet Ethernet IP Modbus TCP Type ME23 ProfiNet Ethernet IP Modbus TCP Digital Communications Digitale Kommunikation Communications numériques Supplement to Operating Instructions Ergänzung zur Betriebsanleitung Supplément aux instructions

Mehr

Vorbereitung. Teil D Analog-Digital-Wandler 1

Vorbereitung. Teil D Analog-Digital-Wandler 1 Vorbereitung So wird der Analog-Digital-Wandler des Mikrocontrollers ATmega328P initialisiert: ADMUX = _BV(REFS0); ADCSRA = _BV(ADEN) _BV(ADPS2) _BV(ADPS1) _BV(ADPS0); Der Analog-Digital-Wandler ist im

Mehr

Einleitung Die Pins alphabetisch Kapitel 1 Programmierung des ATmega8 und des ATmega

Einleitung Die Pins alphabetisch Kapitel 1 Programmierung des ATmega8 und des ATmega Einleitung... 11 Die Pins alphabetisch.... 12 Kapitel 1 Programmierung des ATmega8 und des ATmega328.... 15 1.1 Was Sie auf den nächsten Seiten erwartet... 19 1.2 Was ist eine Micro Controller Unit (MCU)?....

Mehr