Das virtuelle Oszilloskop

Für das Grundlagenlabor im dritten und vierten Semester wurde eine virtuelles Oszilloskop entwickelt und um eine Lernumgebung ergänzt.

Das virtuelle Oszilloskop kann auch direkt über einen in die Lernumgebung integrierten Funktionsgenerator angesteuert werden um die Funktionsweise auch ohne die vorgegebennen Aufgaben zu analysieren.

Das virtuelle Oszilloskop ist für den Einsatz in der Lehre kostenlos nutzbar.
Über folgenden Link, kann die Software heruntergeladen werden.

Die Programme wurden mittels Java erstellt. Daher ist eine aktuelle Java Laufzeitumgebung erforderlich. Nach dem entpacken ist zum Starten entweder die bat Datei zu verwenden, oder die TutorialGUI.jar.

Ausschnitt aus der Lernumgebung
Das virtuelle Oszilloskop

 

 

Word Vorlage für Studienarbeiten

Im Rahmen der Vorlesung wissenschaftliches Arbeiten habe ich für die Studierenden der Elektrotechnik an der DHBW Mannheim das angehängte Word Dokument erstellt und mit dem Professoren und Professorinnen des Studiengangs Elektrotechnik abgestimmt.

Studienarbeitsvorlage für Word (getestet mit Version 2013)  Version vom 20.10.2017

Letzte Änderung: Deckblatt angepasst

Hinweise zu geeigneten Hilfsprogrammen Version vom 16.06.2015

Die Nutzung ist mit dem jeweiligen Betreuer zu diskutieren.

Die Hinweise zur Formatierung, Literaturverzeichnis und Datensicherung können auch für Bachelorarbeiten hilfreich sein.

Cameralink FMC Module (LPC)

For machine vision applications we need to connect industrial cameras to the zedboard. These cameras often use Camera Link interfaces. Therefore we develop a FMC Module (LPC) with a Camera Link interface for the zedboard. Currently only the base configuration is supported. The second Camera Link connector on the board is a pusher for camera simulation and used for testing.

Board

Board_PhotoWe tested the image data receiver successfully at clock rate of 85 MHz with the pusher output and with a AViiVA® SC2 CL Color linescan camera. The camera control signals work correctly, too.

The serial interface of Camera Link was only tested with a input output test. A timing test and the full integration into the operating system will follow in October.

Most of the development were done by students in there student research projects. Substantial contribution came from Nils Lindenthal (left) and Sascha Karmann (right).

StudentTeam

Their documentations give detailed information about the hardware, firmware and software. The final work was done by Nils Lindenthal. Documentations are only available in German.

Karmann, S.: Link to document

Lindenthal, N.:  Link to document

The layout was designed with CadSoft EAGLE PCB.

All source files can be downloaded from https://github.com/roy77/Cameralink-LPC-FMC-Module.

 

 

 

Dynamic testbench for VHDL testing

I developed a dynamic tester for VHDL beginners. This video gives an overview.

 

Features:

  • Develop VHDL code and test it with a 32 In/Out Test interface
  • Beginner environment for BCD2SevenSegment Decoder development
    • Pattern generator with BCD code
    • Seven-segment display output
  • Beginner environment for Gray2Binary Decoder development
    • Pattern generator with Gray code

The tester is based on GHDL and developed in C#.

Download tester with source code: VHDLSimulator

Start the program: VHDLSimulator\bin\Debug\VHDLSimulator.exe

Edit the VHDL soruce file: VHDLSimulator\bin\Debug\Inverter.vhdl

 

 

Portable VDHL Simulation Enviroment

For simulation of VHDL Code the FPGA ventors Xilinx and Altera provide free “Web Editions” of there products. The packets are very big and complex. GHDL is the only simple and open source VHDL simulator.

GHDL is a command line tool for simulation and generate a VCD (value change dump) file as result. gtkWave allow a visualization of the VCD file.

I set up a simple IDE based on Notepad++ for our students. The IDE allow VHDL code development and simulation without knowledge of GHDL or gtkWave.

VHDL_IDE

The usage is simple. Open Notepad++Portable.exe in Notepad++Portable Folder. Select a project. Open a vhdl File an press F6 for simulation.

New projects and files can be added by pressing right mouse button on “Workspace” treeview element. Important is to copy “run.bat” to the new project.

A easier way is to copy and rename the folder of an existing project and running “setProjectFile.bat” in Notepad++Portable Folder to update the workspace file. Restart Notepad++ or “Reload Workspace” to update the Notepad++ view.

Download a the simulation system with two sample projects: VHDL_Simulation1

 

 

 

 

Clone second screen into first screen

For presentations I extend the laptop screen to the beamer. So I can use presenter view in powerpoint. But when I want to show other programs on beamer screen I have to switch to clone mode or look backward on the beamer screen.

A better solution is to clone the second screen in a window on the first screen. The freeware MultiMonitor TaskBar has such a feature, but the framerate is to slow.

Therefore I write a solution based on the codeproject article Capturing the Desktop Screen with the Mouse Cursor Image.

Usage is very simple. When the mouse is on the first screen the program is minimized and has no effect. When the mouse enter the second screen, the program change to fullscreen in first screen and all actions on the beamer are visible in first screen.

Source Code with binaries can be downloaded under ScreenshotCaptureWithMouse. The program is portable, installation is not needed. The program is written in C# and tested with Windows 7 and Windows 8 with 32 and 64 bit. Net Framework 4.0 ore higher is needed.

History:

Version 1.1

  • Bug fix: Stop minimizing window when mouse cursor appearance is changed

Version 1.0

  • Jump list support with
  • version number
  • set second screen to black

Version 0.9

  • Initial version

 

Auswertung Wechselstromersatzschaltbild am Beispiel der Basisschaltung

Im Grundlagenlabor kommt immer wieder die Frage auf, wie mittels Kleinsignalersatzschaltbild/Wechselstromersatzschaltbild die Formeln für die Wechselstromparameter wie Verstärkung, Eingangswiderstand, Ausgangswiderstand bestimmt werden können.

In Standardwerken wie Tietze Schenk wird dies als Trivial angesehen und nicht weiter darauf eingegangen. Aus diesem Grund möchte ich für eine einfache Basisschaltung das Vorgehen erläutern.

Basisschaltung

Ziel ist nun den dynamischen Ausgangswiderstand ohne RL zu bestimmen. Zunächst benötigen wir das Wechselstrom-Ersatzschaltbild der Schaltung. Dazu wird das Wechselstrom-Ersatzschaltbild des Transistors (Spannungsrückwirkung vernachlässigt) um die in der Schaltung enthaltenen Bauteile erweitert.

Hierzu gelten folgende Regeln:

  • Nicht gesteuerte Spannungsquellen sind für Wechselspannung als Kurzschluss anzusehen
  • Nicht gesteuerte Stromquellen sind für Wechselspannung als Leerlauf anzusehen
  • Zusätzlich betrachten wir auch alle Kondensatoren als Kurzschluss für Wechselspannung. Somit entfallen RB1 und RB2. Später wird noch diskutiert, wie diese in das Modell zu integrieren sind.

Wir erhalten folgendes Ergebnis.

BasisWechselstromMit den angegebenen Maschen und Knoten, ergeben sich folgende Gleichungen:

  1. \inline \bg_white i_{A}-\beta \cdot i_{B}-i_{CE}-i_{C}=0
  2. \inline \bg_white i_{B}+i_{CE}+\beta \cdot i_{B}-i_{GE}=0
  3. \inline \bg_white i_{C}\cdot R_{C}+i_{B}\cdot r_{BE}-i_{CE}\cdot r_{CE}=0
  4. \inline \bg_white -i_{B}\cdot r_{BE}-i_{GE}\cdot R_{GE}=0 \: \: \: \: \: \: mit \:\: R_{GE}=R_{G}||R_{E}

Bevor wir nun Anfangen, die Formeln umzustellen, sollte überlegt werden, was zu bestimmen ist. Wir wollen den Ausgangswiderstand in Abhängigkeit der Widerstände und β.

\inline \bg_white r_{A}=f(R_{GE},r_{BE},r_{CE},R_{C},\beta )

In den Formeln haben wir die Unbekannten \inline \bg_white i_{A},i_{B},i_{CE},i_{C},i_{GE}, wir benötigen aber \inline \bg_white r_{A}. Zunächst müssen wir einen Zusammenhang zu \inline \bg_white r_{A} herstellen.

\inline \bg_white r_{A}=\frac{u_{A}}{i_{A}}=R_{C}\frac{i_{C}}{i_{A}}

Somit müssen nur die Unbekannten\inline \bg_white i_{B},i_{CE},i_{GE} entfernt werden.

iGE eliminieren, da nur in 4 und 2 enthalten

4. nach iGE umstellen und in 2. einsetzen liefert

4. \inline \bg_white i_{GE}=-\frac{i_{B}\cdot r_{BE}}{r_{GE}}

2. \inline \bg_white i_{B}+i_{CE}+\beta \cdot i_{B}+\frac{i_{B}\cdot r_{BE}}{R_{GE}}=0

iB eliminieren

2. nach iB umstellen und in 1. und 3. einsetzen

2. \inline \bg_white i_{B}(1+\beta+\frac{r_{BE}}{R_{GE}}))=-i_{CE} \rightarrow i_{B}=-\frac{i_{CE}}{1+\beta+\frac{r_{BE}}{R_{GE}}}

1. \inline \bg_white i_{A}+\beta \cdot \frac{i_{CE}}{1+\beta+\frac{r_{BE}}{R_{GE}}}-i_{CE}-i_{C}=0

3. \inline \bg_white i_{C}\cdot R_{C}-\frac{i_{CE}}{1+\beta+\frac{r_{BE}}{R_{GE}}}\cdot r_{BE}-i_{CE}\cdot r_{CE}=0

 iCE eliminieren

3. iCE umstellen und in 1. einsetzen

3. \bg_white i_{C}\cdot R_{C}=i_{CE}(\frac{1}{1+\beta+\frac{r_{BE}}{R_{GE}}}\cdot r_{BE}+r_{CE})\rightarrow i_{CE}=\frac{i_{C}\cdot R_{C}}{\frac{1}{1+\beta+\frac{r_{BE}}{R_{GE}}}\cdot r_{BE}+r_{CE}}\rightarrow i_{CE}=\frac{i_{C}\cdot R_{C}\cdot(1+\beta+\frac{r_{BE}}{R_{GE}}))}{r_{BE}+r_{CE}\cdot(1+\beta+\frac{r_{BE}}{R_{GE}})}

1.\bg_white i_{A}+\frac{\beta \cdot i_{C}\cdot R_{C}}{r_{BE}+r_{CE}\cdot(1+\beta+\frac{r_{BE}}{R_{GE}})}-\frac{i_{C}\cdot R_{C}\cdot(1+\beta+\frac{r_{BE}}{R_{GE}}))}{r_{BE}+r_{CE}\cdot(1+\beta+\frac{r_{BE}}{R_{GE}})}-i_{C}=0\rightarrow i_{A}-\frac{i_{C}\cdot R_{C}\cdot(1+\frac{r_{BE}}{R_{GE}}))}{r_{BE}+r_{CE}\cdot(1+\beta+\frac{r_{BE}}{R_{GE}})}=i_{C}

 rA bestimmen

\bg_white i_{A}=i_{C}\cdot(1+\frac{R_{C}\cdot(1+\frac{r_{BE}}{R_{GE}})}{r_{BE}+r_{CE}\cdot(1+\beta+\frac{r_{BE}}{R_{GE}})})\rightarrow \frac{i_{C}}{i_{A}}=\frac{1}{1+\frac{R_{C}(1+\frac{r_{BE}}{R_{GE}})}{r_{BE}+r_{CE}(1+\beta+\frac{r_{BE}}{R_{GE}})}}\rightarrow r_{A}=R_{C}\cdot\frac{i_{C}}{i_{A}}=\frac{R_{C}}{1+\frac{R_{C}(1+\frac{r_{BE}}{R_{GE}})}{r_{BE}+r_{CE}(1+\beta+\frac{r_{BE}}{R_{GE}})}}=\frac{1}{\frac{1}{R_{C}}+\frac{1+\frac{r_{BE}}{R_{GE}}}{r_{BE}+r_{CE}(1+\beta+\frac{r_{BE}}{R_{GE}})}}

Es ist eine Parallelschaltung zu erkennen. Zur Vereinfachung können wir ansetzen\bg_white r_{A}=R_{C}||D \:\:\: mit\:\:D=\frac{r_{BE}+r_{CE}(1+\beta+\frac{r_{BE}}{R_{GE}})}{1+\frac{r_{BE}}{R_{GE}}}

Wir könnten an dieser Stelle abbrechen, nach Tietze Schenk wird noch rC als Fakor herausgezogen.

\bg_white D=\frac{r_{BE}+r_{CE}(1+\beta+\frac{r_{BE}}{R_{GE}})}{1+\frac{r_{BE}}{R_{GE}}}=r_{CE}\cdot \frac{\frac{r_{BE}}{r_{CE}}+1+\beta +\frac{r_{BE}}{R_{GE}}}{1+\frac{r_{BE}}{R_{GE}}} \\D=r_{CE}\cdot (1+\frac{\frac{r_{BE}}{r_{CE}}+\beta }{1+\frac{r_{BE}}{R_{GE}}})=r_{CE}\cdot (1+\frac{R_{GE}}{r_{CE}}\cdot \frac{r_{BE}+\beta\cdot r_{CE} }{R_{GE}+r_{BE}})\rightarrow \\r_{A}=R_{C}||[r_{CE}\cdot (1+\frac{R_{GE}}{r_{CE}}\cdot \frac{r_{BE}+\beta\cdot r_{CE} }{R_{GE}+r_{BE}})]

Maxima

Natürlich kann das erstellte Gleichungssystem auch mittels eines Computer Algebra System (CAS) gelöst werden. Als Beispiel habe ich die Berechnungen mittels Maxima realisiert. Hier das Skript Ausgangswiderstand Basisschaltung.

 Ausblick

Zur Bestimmung anderer Kennwerte muss das Kleinsignalersatzschaltbild angepasst werden. So ist für die Spannungsverstärkung der Eingang wieder einzufügen und der Generatorwiderstand ist dazu in Reihe. Danach ist das Vorgehen zur Berechnung ähnlich.

Sind die Kondensatoren nicht zu vernachlässigen ist mit deren Blindwiderstand zu rechnen. Durch die imaginären Werte wird die Lösungen der Gleichungen sehr aufwändig, weshalb hier CAS eingesetzt werden sollten. Man erhält eine Lösung in Abhängigkeit der Frequenz, kann also die Verstärkung mit einer Zahl beschreiben sondern muss den Frequenzgang usw. angeben.