Skip to content
Snippets Groups Projects
Select Git revision
  • 9bd1271cd5376d89ac63dfda77c72be623cc7fa5
  • main default protected
2 results

README.md

Blame
  • rtech-2023ss-p1.tex 12.38 KiB
    % rtech-2023ss-p1.pdf - Labor Notes on Fundamentals in Computer Architecture 
    % Copyright (C) 2023  Peter Gerwinski
    %
    % This document is free software: you can redistribute it and/or
    % modify it either under the terms of the Creative Commons
    % Attribution-ShareAlike 3.0 License, or under the terms of the
    % GNU General Public License as published by the Free Software
    % Foundation, either version 3 of the License, or (at your option)
    % any later version.
    %
    % This document is distributed in the hope that it will be useful,
    % but WITHOUT ANY WARRANTY; without even the implied warranty of
    % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    % GNU General Public License for more details.
    %
    % You should have received a copy of the GNU General Public License
    % along with this document.  If not, see <http://www.gnu.org/licenses/>.
    %
    % You should have received a copy of the Creative Commons
    % Attribution-ShareAlike 3.0 Unported License along with this
    % document.  If not, see <http://creativecommons.org/licenses/>.
    
    % README: Versuch 1: Addierer aus Relais
    
    \documentclass[a4paper]{article}
    
    \usepackage{pgscript}
    \usepackage{multicol}
    \usepackage{amsmath}
    %\usepackage{sfmath}
    
    \usepackage{tikz}
    \usetikzlibrary{circuits.ee.IEC}
    \usetikzlibrary{arrows.meta}
    
    \sloppy
    \raggedcolumns
    \pagestyle{empty}
    \addtolength{\textheight}{1cm}
    \newcommand{\sep}{~$\cdot$~}
    \newcommand{\mylicense}{CC-by-sa (Version 3.0) oder GNU GPL (Version 3 oder höher)}
    
    \begin{document}
    
      \makebox(0,0.005)[tl]{\includegraphics[scale=0.72]{logo-hochschule-bochum-cvh-text-v2.pdf}}\hfill
      \makebox(0,0)[tr]{\includegraphics[scale=0.5]{logo-hochschule-bochum.pdf}}
      \par\bigskip\bigskip
      \begin{center}
        \Large\textbf{Praktikumsversuch 1: Addierer aus Relais}
        \par\medskip
        \normalsize Hardwarenahe Programmierung\sep
        Sommersemester 2023\sep
        Prof.~Dr.~Peter Gerwinski
      \end{center}
    
      Aufgabe: Selbstbau eines binären Addierers auf Grundlage von Relais
    
      \begin{figure}[b]
        \begin{minipage}{7.3cm}
          \includegraphics[width=8cm]{400_points_breadboard.jpg}
          \vspace*{-1cm}
          \caption{Steckplatine}
          \label{Steckplatine}
          \vspace*{1cm}
        \end{minipage}%
        \begin{minipage}{9cm}
          \small\raggedright
          \vspace*{1cm}
          Bildquelle:
          \href{https://commons.wikimedia.org/wiki/File:400_points_breadboard.jpg}%
               {\nolinkurl{https://commons.wikimedia.org/}\\
                \nolinkurl{wiki/File:400_points_breadboard.jpg}}\\
          Autor: \url{https://www.flickr.com/people/33504192@N00}\\
          Lizenz: CC-BY-SA 2.0 Generic
        \end{minipage}
      \end{figure}
    
      \begin{multicols}{2}
    
        Der Versuch besteht aus mehreren Teilen, die aufeinander aufbauen.
        Die ersten dienen dazu, sich mit dem Material
        -- 1 Steckbrett, 2 LEDs, 2 Widerstände, 2 Relais, 1 zweipoliger DIP-Schalter --
        vertraut zu machen.
        Danach erfolgt der eigentliche Bau des Addierers.
    
        \begin{enumerate}
    
          \item
            Bringen Sie eine LED zum Leuchten.
    
            \textbf{Achtung:} Eine LED ist keine Glühlampe!
            Sie wird nicht "`einfach so"' an die Spannungsquelle angeschlossen,
            sondern in Reihe mit einem Schutz"-widerstand.
            (Wir verwenden $1\,{\rm k}\Omega$, Farbcode: Braun, Schwarz, Rot, Gold.)
            \begin{center}
              \begin{tikzpicture}[circuit ee IEC,
                                  set diode graphic=var diode IEC graphic,
                                  small circuit symbols,
                                  every info/.style={font=\footnotesize}]
                \draw (-0.1,0.85)--(0,1)--(0.1,0.85);
                \draw [line width=1pt] (3.8,0) to (4.2,0);
                \draw (0,1)
                   to (0,0.5)
                   to [diode={light emitting}] (2,0.5)
                   to [resistor={ohm=1k}] (4,0.5)
                   to (4,0);
                \node at (-0.4,1) {\footnotesize $+6\rm V$};
              \end{tikzpicture}
            \end{center}
            Auch müssen Sie die Polarität beachten.
            Der Pluspol der LED (Anode) ist an einem längeren Anschlußbeinchen zu erkennen.
            Am Minuspol (Kathode) ist zusätzlich das Gehäuse der Diode abgeflacht.
            (Eselsbrücke: \emph{Ka}\kern0.5ptnte = \emph{Ka}\kern0.8ptthode.)
    
    %        Sofern Sie nicht bereits mit LEDs vertraut sind,
    %        informieren Sie sich bitte \emph{vor\/} Beginn des Praktikumsversuchs darüber.
    
            Die Verdrahtung erfolgt auf Steckplatinen -- siehe
            Abb.~\ref{Steckplatine}.
            Die mit roten und blauen Streifen markierten Lochreihen sind
            in Längsrichtung elektrisch verbunden, alle anderen in
            Querrichtung mit einer Trennung in der Mitte. Üblicherweise
            verwendet man die Längsrichtung für die Stromversorgung:
            Rot = Versorgungsspannung (Pluspol, $6\rm V$), Blau = $0\rm V$ (Minuspol).
    
            \textbf{Bevor Sie die Spannung einschalten,
            lassen Sie den Versuchsaufbau durch einen Betreuer überprüfen!}
    
          \item
            Schalten Sie eine LED über\\einen DIP-Schalter.
    
          \item
            Schalten Sie ein Relais über\\einen DIP-Schalter.
    
            \textbf{Achtung:} Die Anschlußbeinchen der Relais können
            beim Einstecken in die Steckplatine leicht verbiegen.
            Bitte achten Sie darauf, daß dies nicht geschieht!
    
          \item
            Schalten Sie eine LED über\\einen Arbeitskontakt eines Relais.
    
          \item
            Bauen Sie aus den Relais\\einen Und-Schaltkreis.
    
            Schalten Sie die beiden Eingänge des Und-Schaltkreises über die DIP-Schalter.
            Schließen Sie an seinen Ausgang eine LED an.
    
          \item
            Bauen Sie aus den Relais\\einen Exklusiv-Oder-Schaltkreis.
    
          \item
            Bauen Sie aus den Relais\\einen Halbaddierer.
    
          \item
            Überlegen Sie sich, was für den Bau eines Voll"-addierers benötigt wird,
            und führen Sie dieses Projekt durch.
    
          \item
            Überlegen Sie sich, welche maximale Registerbreite Sie mit dem vorhandenen Material
            für einen Mehr-Bit-Addierer erreichen können,
            und bauen Sie diesen Addierer.
    
          \item
            Schreiben Sie einen kurzen Praktikumsbericht über den Bau des Addierers.
    
        \end{enumerate}
    
        Mit dem Praktikumsbericht üben Sie das Schreiben wissenschaftlicher Texte.
        Ziel des Berichts soll es sein, Ihr neues Wissen
        einer interessierten Leserschaft zu vermitteln.
        Dazu gehört:
        \begin{itemize}
          \item
            Stellen Sie eine gemeinsame Wissensgrundlage mit Ihrer Leserschaft her.
          \item
            Dokumentieren Sie Ihre neuen Erkenntnisse auf solche Weise,
            daß man diese nach dem Lesen reproduzieren kann.
          \item
            Wenn Sie im Laufe Ihrer wissenschaftlichen Arbeit (= des Versuchs)
            auf Dinge gestoßen sind, die man unbedingt beachten sollte,
            um unnötige Arbeit und/oder Gefahr für Mensch und Material zu vermeiden,
            dann weisen Sie in Ihrer Dokumentation darauf hin.
        \end{itemize}
        Vergessen Sie auch nicht, was sonst noch zu einer wissenschaftlichen Arbeit gehört:
        \begin{itemize}
          \item
            Eine kurze Zusammenfassung ("`Abstract"') am Anfang ermöglicht
            z.\,B.\ bei einer Web-Suche, zu entscheiden, ob diese Dokumentation das ist,
            wonach man gesucht hat.
          \item
            Eine Zusammenfassung der Ergebnisse am Ende erhöht den praktischen Nutzen Ihrer Arbeit.
          \item
            Wenn Ihre Arbeiten auf den Erkenntnissen Dritter aufbauen,
            müssen Sie diese korrekt zitieren.
        \end{itemize}
        Weitere Hinweise zu diesem Thema:\\
        \url{https://gitlab.cvh-server.de/jweber/latex-template-cvh}\\
        \url{https://gitlab.cvh-server.de/pgerwinski/dfi}
    
        \bigskip
    
        \qquad\qquad\emph{Viel Erfolg!}
    
      \end{multicols}
    
      \vfill
    
      \begingroup
    
        \small
    
        \setlength{\leftskip}{3cm}
    
        Stand: 28.\ März 2023
    
    %    Soweit nicht anders angegeben:\\
        Copyright \copyright\ 2023\quad Peter Gerwinski\\
        Lizenz: \mylicense
    
        Sie können diese Praktikumsunterlagen einschließlich Quelltext
    %    und Beispielprogramme\\
        herunterladen unter:\\
        \url{https://gitlab.cvh-server.de/pgerwinski/rtech}
    
      \endgroup
    
    \iffalse
    
      Aufgabe: Programmieren Sie einen Mikrocontroller so,
      daß er eine Druckknopfampel steuern kann.
    
      \begin{multicols}{2}
    
        \begin{itemize}
          \item
            Normalerweise zeigt eine Druckknopfampel rotes Licht für die
            Fußgänger und grünes Licht für die Straße.
          \item
            Nach Knopfdruck wechselt die Straße über Gelb nach Rot.
            Danach bekommen die Fußgänger Grün.
            Nach einer gewissen Zeit bekommen die Fußgänger wieder Rot,
            und die Straße wechselt über Rot-Gelb wieder zu Grün.
    
          \medskip
          \item
            Als Mikrocontroller-Entwicklungsplattform stellen wir Ihnen
            einen \emph{Arduino Uno\/} zur Verfügung.
          \item
            Software-Entwiklung für den Arduino geschieht üblicherweise
            mit Hilfe der Entwicklungswerkzeuge \emph{GCC, binutils und
            glibc für AVR} sowie \emph{avrdude\/} für das Herunterladen
            des geschriebenen Programms vom PC auf den Mikrocontroller.
    
            Die Arduino-Entwicklungsumgebung (siehe z.\,B.\
            \url{https://www.arduino.cc/en/Main/Software}) integriert
            alle diese Komponenten.
          \item
            Wir schreiben unser Programm in C und nicht in der INO-Sprache.
            Wenn die Quelltext-Dateien in der Arduino-Entwicklungsumgebung
            die Endung \file{.ino} haben, ist das kein Problem,
            sofern der Inhalt der Datei in C geschrieben ist.
          \item
            Den Schaltplan des Arduino Uno sowie das Datenblatt des
            ATmega328p finden Sie per Web-Recherche.
    
          \columnbreak
    
          \item
            Sie können Ihr Programm direkt aus der Arduino-Entwicklungsumgebung heraus
            compilieren und auf den Mikrocontroller herunterladen.
            Wenn Sie dies von der Kommandozeile aus machen möchten,
            geht dies folgendermaßen:
    
            \lstinline[style=cmd]{avr-gcc -Wall -Os -mmcu=atmega328p \}\\
            \lstinline[style=cmd]{dateiname.c -o dateiname.elf}
    
            \lstinline[style=cmd]{avr-objcopy -O ihex \}\\
            \lstinline[style=cmd]{dateiname-4.elf dateiname-4.hex}
    
            \lstinline[style=cmd]{avrdude -P /dev/ttyACM0 -c arduino \}\\
            \lstinline[style=cmd]{-p m328p -U flash:w:dateiname.hex}
    
            Notfalls: \lstinline[style=cmd]{sudo chmod 666 /dev/ttyACM0}
    
          \medskip
          \item
            Die Verdrahtung erfolgt auf Steckplatinen -- siehe
            Abb.~\ref{Steckplatine}.
            Die mit roten und blauen Streifen markierten Lochreihen sind
            in Längsrichtung elektrisch verbunden, alle anderen in
            Querrichtung mit einer Trennung in der Mitte. Üblicherweise
            verwendet man die Längsrichtung für die Stromversorgung: Rot
            = Versorgungsspannung, Blau = 0\,V.
          \item
            LEDs sind keine Glühlampen! Sie haben einen Pluspol (länger)
            und einen Minuspol (kürzer, Gehäuse abgeflacht), und sie dürfen
            \textbf{nur mit Vorwiderstand} betrieben werden,
            andernfalls besteht die Gefahr einer Zerstörung der LED
            und/oder des Arduino.
          \item
            Anstelle eines Drucktasters verwenden wir ein Stück Draht.
          \item
            Bevor Sie Ihre Schaltung unter Strom setzen, lassen Sie
            diese \textbf{durch einen Betreuer prüfen}.
        \end{itemize}
    
        \vspace*{-\medskipamount}
    
        \strut\hfill\emph{Viel Erfolg!}\\[-3.5cm]
    
      \end{multicols}
    
      \vspace*{-1.5\bigskipamount}
    
      \begin{figure}[h]
        \begin{minipage}{7.3cm}
          \includegraphics[width=8cm]{400_points_breadboard.jpg}
          \vspace*{-1cm}
          \caption{Steckplatine\label{Steckplatine}}
          \vspace*{1cm}
        \end{minipage}%
        \begin{minipage}{9cm}
          \small\raggedright
          \vspace*{1cm}
          Bildquelle:
          \href{https://commons.wikimedia.org/wiki/File:400_points_breadboard.jpg}%
               {\nolinkurl{https://commons.wikimedia.org/}\\
                \nolinkurl{wiki/File:400_points_breadboard.jpg}}\\
          Autor: \url{https://www.flickr.com/people/33504192@N00}\\
          Lizenz: CC-BY-SA 2.0 Generic
        \end{minipage}
      \end{figure}
    
      \vspace*{-1.5\bigskipamount}
    
      \vfill
    
      \begingroup
    
        \small
    
        \setlength{\leftskip}{3cm}
    
        Stand: 31.\ Oktober 2022
    
    %    Soweit nicht anders angegeben:\\
        Copyright \copyright\ 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022\quad Peter Gerwinski\\
        Lizenz: \mylicense
    
        Sie können diese Praktikumsunterlagen einschließlich \LaTeX-Quelltext
    %    und Beispielprogramme\\
        herunterladen unter:\\
        \url{https://gitlab.cvh-server.de/pgerwinski/hp}
    
      \endgroup
    
    \fi
    
    \end{document}