06.11.2013 Aufrufe

DMX - bei der Elektronikschule Tettnang

DMX - bei der Elektronikschule Tettnang

DMX - bei der Elektronikschule Tettnang

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Projektar<strong>bei</strong>t 2005/06<br />

<strong>DMX</strong>-Adaption für ein analog<br />

gesteuertes Stroboskop<br />

ELEKTRONIKSCHULE TET TNANG<br />

Felix Bucella,<br />

Karl-Heinz Zimmermann


Projektar<strong>bei</strong>t 2005/06<br />

Zweijähriges Berufskolleg für<br />

Informations- und Kommunikationstechnik<br />

ELEKTRONIKSCHULE TETTNANG<br />

<strong>DMX</strong>-Adaption für ein analog gesteuertes<br />

Stroboskop<br />

Verfasser:<br />

Felix Bucella<br />

Karl-Heinz Zimmermann<br />

Betreuer:<br />

Wilhelm Amann<br />

<strong>Elektronikschule</strong> • Oberhofer Straße 25 • 88069 <strong>Tettnang</strong>


Ich versichere, dass die Projektar<strong>bei</strong>t von mir selbstständig angefertigt<br />

und nur die angegebenen Hilfsmittel benutzt wurden.<br />

Alle Stellen, die dem Wortlaut o<strong>der</strong> dem Sinne nach an<strong>der</strong>en Werken<br />

entnommen sind, habe ich durch Angabe <strong>der</strong> Quellen kenntlich gemacht.<br />

ELEKTRONIKSCHULE TET TNANG<br />

Datum<br />

Unterschrift<br />

Datum<br />

Unterschrift


Inhaltsverzeichnis<br />

Kurzbeschreibung <strong>der</strong> Projektar<strong>bei</strong>t 1<br />

Project Compendium 2<br />

Seite:<br />

1. Stroboskope 3<br />

2. Lichtsteuerung 4<br />

2.1 Lichtsteuerpulte 4<br />

2.1.1 Generic-Pulte für konventionelles Licht 5 - 6<br />

Preset- Pulte 5<br />

Szenen-Pulte 5 - 6<br />

2.1.2 MovingLight-Pulte für intelligentes Licht 6<br />

2.1.3. Hybrid-Pulte 7<br />

2.2 Lichtcontroller 7 - 8<br />

3 Die Steuerungsdatenübertragung 8<br />

3.1 Analoge Steuerung 8 - 9<br />

3.2 Digitale Steuerung – <strong>DMX</strong> 9 - 10<br />

3.2.1 Pegel 10<br />

3.2.2 Frequenz 10<br />

3.2.3 Signalleitung 11<br />

3.2.4 Steckverbin<strong>der</strong> 11 - 12<br />

3.2.5 Adressierung 13<br />

3.2.6 Übertragungsprotokoll 14 - 15


4. Programmierung 16<br />

4.1 Der <strong>DMX</strong>-Empfang 16 - 17<br />

4.1.1 Reset Erkennung mittels Timer 17 - 19<br />

4.1.2 Reset Erkennung mittels Errorflag 19 - 20<br />

4.2 Frequenzerzeugung 20<br />

4.2.1 Frequenzerzeugung mit zwei Timern 20 - 21<br />

4.2.2 Frequenzerzeugung mit einem Timer 22<br />

4.2.3 Frequenzerzeugung mit PCA-Timer 22 - 23<br />

4.3 Flash Funktion 23 - 24<br />

4.4 Tabelle mittels Java Programm 25<br />

5. Elektronik 26<br />

5.1 Rechtecksignal Verstärker 26<br />

5.2 RS485 – TTL Pegelwandler 27<br />

5.3 50kHz Rechtecksignal mit NE555 IC 28<br />

6. Tagesberichte 29 – 36<br />

Quellenangabe 36<br />

Anhang: Programm PAP 37<br />

Quellcode 38 - 40<br />

Datenblätter


Kurzbeschreibung <strong>der</strong><br />

Projektar<strong>bei</strong>t<br />

Unsere Aufgabe war es ein bisher analog angesteuertes Stroboskop auf <strong>DMX</strong><br />

umrüsten. Die Steuerfrequenz wurde über ein analoges Steuergerät erzeugt<br />

wo<strong>bei</strong> das Stroboskop <strong>bei</strong> je<strong>der</strong> Aufwärtsflanke des Signals einmal blitzte.<br />

Die Helligkeit wurde über ein Potentiometer am Stroboskop direkt<br />

eingestellt. Unser Ziel, zwei <strong>DMX</strong> Kanäle mit dem Mikro-Controller zu<br />

empfangen und die Daten zu verar<strong>bei</strong>ten, haben wir erreicht.<br />

Die Blitzfrequenz wird da<strong>bei</strong> aus den Daten des ersten empfangenen Kanals<br />

errechnet und <strong>der</strong> Datenwert des zweiten Kanals für die Helligkeit wird an<br />

einem Port ausgegeben. An diesem Port soll noch eine Digitale<br />

Potentiometerschaltung angeschlossen werden, um die Blitz Helligkeit zu<br />

regeln. Eine beson<strong>der</strong>e Schwierigkeit da<strong>bei</strong> war es, das sehr zeitkritische<br />

<strong>DMX</strong>-Signal richtig zu empfangen und währenddessen eine gleichmäßige<br />

Frequenz ohne Verwendung <strong>der</strong> Interrupts zu erzeugen. Aus diesem Grund<br />

haben wir unser Programm in Assembler geschrieben. Durch verschiedene<br />

elektronische Schaltungen haben wir die drei folgenden Komponenten<br />

miteinan<strong>der</strong> verbunden:<br />

• <strong>DMX</strong>-Sen<strong>der</strong> (Lichtsteuerpult)<br />

• Mikro-Controller als <strong>DMX</strong>-Empfänger und Rechteck-Signal-Generator<br />

• Stroboskop als Rechteck-Signal-Empfänger<br />

Wir brauchten sehr viel Zeit um verschiedene Möglichkeiten des <strong>DMX</strong>-<br />

Empfangs und <strong>der</strong> Rechteck-Signalerzeugung auszuprobieren.<br />

1


Project Compendium<br />

Our task was it to rebuild an analog controlled stroboscope so that it can be<br />

controlled by <strong>DMX</strong>. Until now we got an analog controller to control the<br />

stroboscope. The stroboscope makes a flash, if it gets a rising edge form 0V<br />

to 12V. The lightness is set with a potentiometer at the stroboscope. We<br />

succeed to receive the <strong>DMX</strong>-Bytes and to create the needed frequency out of<br />

them. The flash frequency is made out of the first <strong>DMX</strong>-value. For the<br />

lightness we put the second received byte in a port so that we have access<br />

to the value from outside. We want to connect this port to a digital<br />

potentiometer circuit witch makes the lightness setting. An especially<br />

difficult was it to receive the time critical <strong>DMX</strong>-signal and make a frequency<br />

without using interrupts. Because of this we decide to make our programs in<br />

the programming language assembler. We connected the three following<br />

devices by electrical circuits.<br />

• <strong>DMX</strong>-transmitter<br />

• Microcontroller to receive and create a needed frequency<br />

• Stroboscope as receiver of the frequency witch is made by the<br />

microcontroller<br />

The most time we needed to test and optimize different methods of<br />

receiving and generating the frequency.<br />

2


1. Stroboskope<br />

Ein Stroboskop ist ein Gerät o<strong>der</strong> Bauteil welches Lichtblitze in<br />

gleichmäßigen Abständen und meist sehr schnell hintereinan<strong>der</strong> erzeugen<br />

kann. Das Wort Stroboskop leitet sich griechischen Wörtern strobos =<br />

drehen und skopein = betrachten ab. Durch die Trägheit des menschlichen<br />

Auges nehmen wir unter solchen Blitzen alle Bewegungen abgehackt und<br />

langsamer war. Der kurze belichtete Moment bleibt dem Auge noch so lange<br />

in Erinnerung, bis <strong>der</strong> nächste Blitz kommt. Dieser Effekt ist allerdings nur in<br />

einem Frequenzbereich zwischen ca. 2Hz und 50Hz schön zu beobachten.<br />

Industriell werden Stroboskope zur Messung von Drehzahlen <strong>bei</strong> Rotierenden<br />

Maschinen verwendet, z.B. um den Zündzeitpunkt von Motoren zu ermitteln.<br />

Im privaten Bereich kennen wir das Stroboskop als kleine<br />

Geschwindigkeitsanzeige <strong>bei</strong>m Plattenspieler. Da<strong>bei</strong> scheint das am<br />

Plattenteller angebrachte Raster <strong>bei</strong> richtiger Geschwindigkeitseinstellung<br />

still zu stehen. Große Stroboskope sorgen außerdem für aufregende Effekte<br />

in <strong>der</strong> Veranstaltungstechnik.<br />

Die von uns entwickelte <strong>DMX</strong>-Adaption ist für ein Stroboskop aus diesem<br />

letzten Anwendungsbereich gedacht. Bei <strong>der</strong> ursprünglichen Bauform eines<br />

Stroboskops von Simon Ritter; Stampfer rotierte eine Scheibe mit Loch vor<br />

einem Scheinwerfer. Heutzutage werden LEDs mit einer elektronisch<br />

erzeugten Frequenz angesteuert, o<strong>der</strong> für starke Blitze spezielle Blitzröhren<br />

verwendet.<br />

(Das im Projekt<br />

verwendete 2700W<br />

Stroboskop)<br />

3


2. Lichtsteuerung<br />

Lichtsteuerungen kommen überall dort zum Einsatz wo Lichtanlagen<br />

verwendet werden, also mehrere Lichter miteinan<strong>der</strong> für eine Lichtstimmung<br />

sorgen sollen. Dies ist allgemein in <strong>der</strong> Veranstaltungstechnik zum Beispiel<br />

in Theatern, Fernsehstudios, Discotheken auf Großveranstaltungen wie<br />

Festivals, Messen und Fernsehshows <strong>der</strong> Fall.<br />

Lichtsteuerung ist die Übertragung <strong>der</strong> Steuerinformationen vom<br />

Steuergerät wie einem Lichtsteuerpult o<strong>der</strong> Controller zu den Clients wie z.B.<br />

Dimmer, Farbwechsler, Effektgeräte, Stroboskope, positionierbare<br />

Scheinwerfer usw.<br />

2.1 Lichtsteuerpulte<br />

Es gibt vornehmlich drei Arten von Lichtpulten die je nach<br />

Anwendungsbereich zum Einsatz kommen. Für das Ansteuern unseres<br />

Stroboskopadapters sind alle drei Arten von Pulten geeignet, da er zwar<br />

“Intelligenz“ besitzt, jedoch nur eine geringe. Im Folgenden werden wir auf<br />

die drei Arten von Pulten eingehen, da unser Stroboskop in allen<br />

Anwendungsbereichen zum Einsatz kommen soll.<br />

4


2.1.1 Generic-Pulte für konventionelles Licht<br />

Diese Pulte sind ausschließlich zur Steuerung von konventionellem Licht<br />

konzipiert. Sie unterstützen nur die ursprünglichste und einfachste Form <strong>der</strong><br />

Lichtsteuerung, die Helligkeitseinstellung. Zu dieser Kategorie gehören:<br />

Preset- Pulte:<br />

Bei Preset-Pulten werden mittels Fa<strong>der</strong>n für jeden Kanal Helligkeitswerte<br />

eingestellt. Mit einem P-Pult hat <strong>der</strong> Anwen<strong>der</strong> die Möglichkeit, während<br />

<strong>der</strong> Ausgabe einer Lichtstimmung (auch Szene genannt) bereits eine<br />

zweite Szene auf dem Pult einzustellen, um nach Ende <strong>der</strong> ersten Szene<br />

sofort auf die nächste umblenden zu können. Meist haben diese Pulte<br />

zwei Presets (in Form von zwei Fa<strong>der</strong>-Reihen untereinan<strong>der</strong>), zwei<br />

Summenregler, Flashtasten für jeden Kanal und eventuell eine<br />

Schaltung zur Überblendung mit einstellbarer Geschwindigkeit. Die<br />

meisten Analogpulte sind Pulte dieser Art.<br />

Szenen-Pulte:<br />

Im Gegensatz zu den Preset-Pulten benötigen Pulte mit Szenenspeicher<br />

einen Mikrocontroller zur Steuerung und geben daher meist anstelle von<br />

analogen 0 bis 10 Volt Signalen ein <strong>DMX</strong>-Signal aus. Die Funktion <strong>der</strong><br />

Presets übernehmen hier die Szenen. Mittels Fa<strong>der</strong>n wird auch hier eine<br />

Lichtstimmung eingestellt dann aber im Speicher des Pults abgelegt. Im<br />

Betriebsmodus lässt sich dann diese Stimmung durch nur einen<br />

bestimmten Fa<strong>der</strong> wie<strong>der</strong> abrufen. Viele Pulte dieser Art bieten neben<br />

dieser Betriebsform auch noch einen normalen Presetmodus. Außerdem<br />

hat man <strong>bei</strong> diesen Pulten häufig die Möglichkeit Sequenzen, auch<br />

Chaser genannt (teils durch Musik steuerbar), zu programmieren. Diese<br />

Funktion findet den häufigsten Einsatz in<br />

Diskotheken um Lauflichter und Blinkeffekte<br />

zu erzeugen. Das hier abgebildete<br />

<strong>DMX</strong>-Szenen-Pult haben wir <strong>bei</strong> <strong>der</strong><br />

Ausar<strong>bei</strong>tung unserer Projektar<strong>bei</strong>t<br />

vorwiegend verwendet.<br />

5


Eine Erweiterung dieser Szenen-Pulte sind die Theaterpulte <strong>bei</strong> denen es<br />

möglich ist, eine Cuelist zu kreieren. In einer Cuelist sind die<br />

aufeinan<strong>der</strong> folgenden Lichteinstellungen und Überblendeinstellungen<br />

einer kompletten Show gespeichert sodass <strong>der</strong> Techniker nur durch<br />

Drücken eines "Go-Buttons" den Übergang zur nächsten Lichtstimmung<br />

starten kann.<br />

2.1.2 MovingLight-Pulte für intelligentes Licht<br />

Das sind Pulte, die zur Steuerung von intelligentem Licht (alles was über das<br />

normale Dimmen, also Än<strong>der</strong>n <strong>der</strong> Helligkeit hinaus geht) konzipiert sind.<br />

Die Steuerung von Scannern, Movingheads und an<strong>der</strong>em intelligentem Licht<br />

ist mit den zuvor genannten Pulten nicht sinnvoll möglich, daher werden<br />

häufig mehrere unterschiedliche Pulte eingesetzt. Bei Pulten für Intelligentes<br />

Licht werden zuerst die zu steuernden Geräte einprogrammiert um die<br />

Belegung <strong>der</strong> Kanäle zu berücksichtigen, da <strong>bei</strong> einigen Effektgeräten ein<br />

Kanal gleich mehrere Funktionen steuern kann. Außerdem ist es Bei diesen<br />

Pulten möglich, falls <strong>der</strong> Client es erfor<strong>der</strong>t, 16-Bit Werte über zwei<br />

aufeinan<strong>der</strong> folgende Frames im <strong>DMX</strong>-Protokoll zu übertragen.<br />

Nun werden die Spiegel- und Kopfpositionen<br />

programmiert und in Sequenzen<br />

zusammengefasst. Je<br />

nach Pult können dann einzelne o<strong>der</strong><br />

mehrere Sequenzen gleichzeitig abgerufen<br />

werden. Häufig können auch Parameter wie<br />

Farbe, Helligkeit, Gobo und Geschwindigkeit<br />

während <strong>der</strong> Laufzeit verän<strong>der</strong>t werden. Im<br />

begrenzten Umfang ist mit diesen Pulten<br />

auch die Steuerung von konventionellem<br />

Licht möglich, macht aber wenig Sinn.<br />

(Multifunktionsscheinwerfer<br />

Moving-Head MAC 2000)<br />

6


2.1.3 Hybrid-Pulte<br />

Diese Pulte sind in <strong>der</strong> Lage, <strong>bei</strong>de Arten von Licht, also konventionelles und<br />

intelligentes Licht zu steuern. Hybridpulte fassen die Funktionen von<br />

Generic-Pulten und Pulten für intelligentes Licht zusammen. Aufgrund des<br />

Aufwands kommen hier meist PCs mit spezieller Hardware zum Einsatz.<br />

Diese Pulte werden <strong>bei</strong> entsprechenden Showgrößen eingesetzt, z.B. in<br />

stationären Musicals, TV-Shows und großen Theatern. Sie bieten aufgrund<br />

des großen Kanalumfangs häufig mehrere <strong>DMX</strong>-Universen o<strong>der</strong><br />

Netzwerkprotokolle zur Steuerung einiger tausend Scheinwerfer.<br />

2.2 Lichtcontroller<br />

Zur Steuerung von Lichtanlagen kommen ebenfalls Lichtcontroller zum<br />

Einsatz, die jedoch gegenüber den Lichtsteuerpulten nur begrenzte<br />

Einstellungsmöglichkeiten bieten und somit meist nur in Discotheken und<br />

Clubs eingesetzt werden. Lichtcontroller sind normalerweise so konstruiert<br />

dass verschiedene vorgefertigte Programme, wie zum Beispiel ein Lauflicht,<br />

abgespielt und <strong>der</strong> Musik angepasst werden kann. Es gibt zwar <strong>DMX</strong><br />

Lichtcontroller auch für bewegtes Licht, doch geben die meisten Controller<br />

ein analoges Signal aus. Manche <strong>bei</strong>nhalten sogar einen Verstärker an dem<br />

die Scheinwerfer direkt angeschlossen werden können, sodass gar keine<br />

Steuerleitungen mehr benötigt werden. Ein entscheiden<strong>der</strong> Nachteil ist, dass<br />

die Anzahl <strong>der</strong> Geräte die an einen analogen Lichtcontroller angeschlossen<br />

werden können, meist gering und auf eine Art beschränkt ist.<br />

(Der bisherige Stroboskop-Controller)<br />

7


Das in unserem Projekt verwendete Stroboskop wurde bisher über den, auf<br />

<strong>der</strong> vorigen Seite abgebildeten Analog Strobe-Controller (Model FL-34C) von<br />

GENI Electronics angesteuert. Dieser Controller wurde speziell für die<br />

Ansteuerung von maximal 4 Stroboskopen gleichzeitig konstruiert.<br />

Einstellbar ist da<strong>bei</strong> die Blitzfrequenz von 1Hz bis ca. 28Hz, die Anzahl <strong>der</strong><br />

aufeinan<strong>der</strong> folgenden Blitze (1,2,4 o<strong>der</strong> 8) und die Reihenfolge, in <strong>der</strong> die 4<br />

Stroboskope blitzen sollten.<br />

3.Die Steuerungsdatenübertragung<br />

Für die Übertragung <strong>der</strong> Steuerungsdaten gibt es in <strong>der</strong><br />

Veranstaltungstechnik zwei übliche Methoden:<br />

1. Das mittlerweile veraltete analoge Ansteuern mit einer Leitung für jede<br />

Funktion und jeden Client extra.<br />

2. Die digitale Steuerung über den <strong>DMX</strong>-Bus.<br />

3.1 Analoge Steuerung<br />

Bei <strong>der</strong> analogen Steuerung war für jede Steuerungsfunktion eine A<strong>der</strong><br />

nötig, auf <strong>der</strong> ein Steuersignal übertragen wurde. Hier hat sich die<br />

Ansteuerung mit Gleichspannung von 0 bis +10V international durchgesetzt.<br />

Das ist praktisch und einfach weil sich Nie<strong>der</strong>spannung einfach handhaben,<br />

leicht verteilen und im Falle eines Problems mit einem normalen<br />

Taschenmultimeter sehr einfach überprüfen lässt. So wurde auch unser<br />

Stroboskop bisher auf diese Weise vom Lichtkontroller angesteuert und<br />

blitzte jedes Mal <strong>bei</strong>m Überschreiten von ca. +3V. Dass diese Grenze <strong>bei</strong> 3V<br />

liegt ist allerdings nebensächlich, da <strong>der</strong> Lichtcontroller ein Rechtecksignal<br />

mit 0V für Low und 10V für High sendete.<br />

8


Einen entscheidenden Nachteil dieser Steuerungsart stellten wir jedoch<br />

schon zu Beginn unserer Projektar<strong>bei</strong>t fest welcher darin bestand dass unser<br />

Stroboskopcontroller empfindlich auf Schwankungen im Netz reagierte und<br />

das Stroboskop somit manchmal unabsichtlich blitzte, wenn im selben Raum<br />

ein starker Verbraucher eingeschaltet wurde. Diese Toleranzen fallen <strong>bei</strong>m<br />

Ansteuern von konventionellen Scheinwerfern durch <strong>der</strong>en Flackern noch<br />

stärker ins Gewicht. Ein weiteres Problem <strong>bei</strong> <strong>der</strong> analogen Steuerung<br />

allgemein ist, dass durch den zunehmenden Einsatz von Multifunktionsscheinwerfern<br />

wie Scanner, Movingheads und Farbwechslern jedes Gerät<br />

nun mehrere Kanäle und dadurch Steuerleitungen zur Ansteuerung benötigt.<br />

Die Kanalanzahlen und Funktionen sind von Gerät zu Gerät unterschiedlich<br />

und das "Aufsplitten" von Leitungen demzufolge sehr umständlich und <strong>bei</strong><br />

großen Netzen sehr verwirrend.<br />

3.2 Digitale Steuerung - <strong>DMX</strong><br />

Seit 1988 gibt es eine Lösung für die meisten oben genannten Probleme <strong>der</strong><br />

Analogen Steuerung. Steven Terry (jetzt: ESTA Chair) und Mitch Hefter<br />

(jetzt: USITT Commissioner) entwickelten die Ur-Form des <strong>DMX</strong>-512<br />

Protokolls. Das Protokoll wurde von <strong>der</strong> USITT (United States Institute of<br />

Theatre Technology, Inc.) dokumentiert und als <strong>DMX</strong>-512/1990 publiziert.<br />

1994 legte <strong>der</strong> deutsche Industrienorm Fachnormenausschuß DIN FNTh2 das<br />

USITT <strong>DMX</strong>-512 Protokoll als DIN 56930 "Lichtsteuersignale" fest.<br />

Mittlerweile ist die serielle, digitale Übertragung nach <strong>DMX</strong>-512 o<strong>der</strong> DIN<br />

56930 <strong>der</strong> meist verwendete Übertragungsstandard in <strong>der</strong> Lichttechnik. Da<br />

die USITT jedoch kein international anerkanntes Normungsgremium ist,<br />

wurde die Pflege und Weiterentwicklung des <strong>DMX</strong>-512 Standards <strong>der</strong> ESTA<br />

(Entertainment Services and Technology Association) übertragen. Diese ist<br />

berechtigt ANSI Normen (American National Standards Institute, sozusagen<br />

das amerikanische DIN) zu erstellen und veröffentlichte im November 2005<br />

die Weiterentwicklung des <strong>DMX</strong>-512/1990 nämlich <strong>DMX</strong>-512A<br />

(vorgeschlagen als "<strong>DMX</strong>-512/2000"). Die korrekte Bezeichnung dieser<br />

neuen ANSI-Norm lautet ANSI E1.11.<br />

9


In dieser Projektdokumentation wird ausschließlich die <strong>DMX</strong>-512A Norm<br />

beschrieben da diese abwärtskompatibel und dem <strong>DMX</strong>-512/1990 Standart<br />

sehr ähnlich ist. Unsere Adaption für das Stroboskop hält sich bereits an<br />

diese neue Norm.<br />

3.2.1 Pegel<br />

Die Abkürzung <strong>DMX</strong>-512 steht für<br />

Digital Multiplex für 512 Kanäle und<br />

beschreibt einen digitalen seriellen<br />

Bus, <strong>der</strong> auf dem RS-485 Standard<br />

basiert. RS-458 ist ein elektrischer<br />

Pegel zwischen 0V und 6V <strong>bei</strong> dem<br />

auf 2 Leitungen Signale gespiegelt<br />

übertragen werden, was die Übertragung<br />

sehr sicher macht, wie es <strong>bei</strong> seriellen Bussen allgemein <strong>der</strong> Fall ist.<br />

Für <strong>DMX</strong>-512 werden allerdings nur eine Signalspannung von 0V für Low-<br />

Zustand und 2,5V für den High-Zustand verwendet.<br />

3.2.2 Frequenz<br />

Die Datenübertragungsrate beträgt 250 kBit/s (das sind 250 000 Bits pro<br />

Sekunde), man hat also eine Grundfrequenz von 250 kHz in <strong>der</strong> sich laut<br />

Soundlight.de auf Grund des Rechtecksignals Signalanteile von bis zu 2,5<br />

MHz finden. Aufgrund dieser hohen Frequenz sind beson<strong>der</strong>s <strong>bei</strong> <strong>der</strong><br />

Übertragung über längere Strecken Maßnahmen wie sie auch in <strong>der</strong> HF-<br />

Technik angewendet werden erfor<strong>der</strong>lich. Dazu gehört die Wahl <strong>der</strong> Kabel<br />

mit korrekter Leitungsimpedanz, <strong>der</strong> richtiger Leitungsabschluss, und auf<br />

eine saubere Verkablung ist außerdem zu achten. Insbeson<strong>der</strong>e <strong>bei</strong> längeren<br />

Verbindungen muss unbedingt ein Abschlussstecker mit 120 Ohm<br />

Wi<strong>der</strong>stand zwischen <strong>der</strong> <strong>DMX</strong>+ Leitung und <strong>der</strong> <strong>DMX</strong>- Leitung verwendet<br />

werden.<br />

10


3.2.3 Signalleitung<br />

Signalkabel die zur Übertragung von RS-485 Signalen und somit <strong>DMX</strong><br />

verwendet werden, sollten verdrillt (Twisted Pair) und geschirmt sein. Diesen<br />

Anfor<strong>der</strong>ungen entsprechen Twinax-Kabel aus <strong>der</strong> digitalen Tontechnik, also<br />

Kabel die <strong>der</strong> AES/EBU Norm mit einem Wellenwi<strong>der</strong>stand von 110 bis 120<br />

Ohm, o<strong>der</strong> CAT-5 Kabel aus <strong>der</strong> Computertechnik welche allerdings nur für<br />

eine feste Verkabelung geeignet sind. Unter Verwendung solcher Kabel<br />

können theoretisch, nach <strong>der</strong> RS-485 Norm die <strong>DMX</strong>-512 implementiert,<br />

Leitungslängen von bis zu 1200 m überbrückt werden. In <strong>der</strong> Praksis werden<br />

es aber weit weniger sein, da die Leitungslänge stark von <strong>der</strong> Anzahl <strong>der</strong><br />

Busteilnehmer abhängt. Mit einem Standard-Mikrofonkabel ist die<br />

Übertragung von <strong>DMX</strong> über kurze Strecken zwar auch möglich, über längere<br />

Strecken wegen <strong>der</strong> hohen Kapazität dieser Kabel jedoch nicht zu<br />

bewältigen. Auch für kurze Strecken sind normale Mikrofonkabel nicht zu<br />

empfehlen, obwohl sie gerne verwendet werden, weil sie gleichen<br />

Steckverbin<strong>der</strong> haben.<br />

3.2.4 Steckverbin<strong>der</strong><br />

Die <strong>DMX</strong>-512-Norm schreibt fünfpolige XLR-Stecker vor, aufgrund des<br />

Preises werden jedoch häufig auch die dreipolige Variante <strong>der</strong> XLR-Stecker<br />

verwendet. Die Folge ist, dass man in <strong>der</strong> Praxis immer genügend Adapter<br />

von 3 auf 5-polige XLR-Verbin<strong>der</strong> bereit halten sollte. Allgemein werden<br />

immer 3 A<strong>der</strong>n benötigt, eine für das Signal (<strong>DMX</strong>+), eine für das invertierte<br />

Signal (<strong>DMX</strong>-) und eine für die Masse und Abschirmung. Bei fünfpoligen XLR-<br />

Kabeln wird ein A<strong>der</strong>paar meistens nicht angeschlossen, es kann jedoch für<br />

einen Rückkanal ("Talkback") o<strong>der</strong> einen weiteren Sendekanal verwendet<br />

werden. Ein Rückkanal wird in <strong>der</strong> Lichttechnik allerdings so gut wie nie<br />

verwendet.<br />

11


Pol 5 polig 3 polig international<br />

1 Masse (Schirm) Masse (Schirm)<br />

XLR-Stecker:<br />

5-polig<br />

2 Signal invertiert (<strong>DMX</strong>-) Signal invertiert (<strong>DMX</strong>-)<br />

3 Signal (<strong>DMX</strong>+) Signal (<strong>DMX</strong>+)<br />

4 frei / 2. Signal (<strong>DMX</strong>-)<br />

3-polig<br />

5 frei / 2. Signal (<strong>DMX</strong>+)<br />

Bei älteren Martin Geräten (vor 2000) mit 3-poligen XLR-Anschlüssen waren<br />

<strong>der</strong> <strong>DMX</strong>+ Pin und <strong>DMX</strong>- Pin vertauscht und somit nicht normgerecht.<br />

Ebenfalls nicht normgerecht aber bewährt ist das Verwenden von CAT-5<br />

Kabeln aus <strong>der</strong> Computernetzwerktechnik und den dazugehörigen RJ-45<br />

Steckern. Zwar gibt es keine vorgeschriebene Norm zur Pin-Belegung, ein<br />

Entwurf für eine sinnvolle Belegung sieht jedoch wie folgt aus:<br />

Pin Belegung A<strong>der</strong>paar<br />

1 1. Signal invertiert (<strong>DMX</strong>-)<br />

2 1. Signal (<strong>DMX</strong>+)<br />

3 1. Masse (Schirm)<br />

4 1. Versorgung 24V =<br />

5 2. Signal invertiert (<strong>DMX</strong>-)<br />

6 2. Signal (<strong>DMX</strong>+)<br />

7 2. Masse (Schirm)<br />

8 2. Versorgung 24V =<br />

Paar 1<br />

Paar 2<br />

Paar 3<br />

Paar 4<br />

Wie an dieser Tabelle leicht zu erkennen ist können mit einer CAT-5 Leitung<br />

die aus 4 A<strong>der</strong>paaren, also 8 A<strong>der</strong>n besteht, zwei <strong>DMX</strong>-Systeme über nur ein<br />

Kabel versorgt werden.<br />

12


3.2.5 Adressierung<br />

Wie in je<strong>der</strong> Bustopologie müssen auch <strong>bei</strong> <strong>DMX</strong>-512 alle Clients eine o<strong>der</strong><br />

mehrere eindeutige Adressen haben, die am Gerät einstellbar sein sollten.<br />

Das Lichtpult o<strong>der</strong> <strong>der</strong> Lichtcontroller braucht als Master keine Adresse. Die<br />

Daten werden immer nur aneinan<strong>der</strong>gereiht, vom Master gesendet, sodass<br />

die Clients nur das ihrer Adresse entsprechende Datenframe von 8 Bit<br />

abpassen müssen. Maximal können theoretisch 512 Clients im Bus adressiert<br />

werden, wo<strong>bei</strong> diese Zahl aus zwei Gründen unrealistisch ist.<br />

Erstens können von einem Master nur maximal 32 Empfänger mit Daten<br />

versorgt werden. Danach ist das Signal so schwach, dass ein<br />

Repeater/Booster o<strong>der</strong> Splitter benötigt wird um das Signal aufzufrischen um<br />

weitere 32 Geräte versorgen zu können.<br />

Zweitens benötigen die meisten per <strong>DMX</strong>-512 gesteuerten Geräte mehr als<br />

nur eine Adresse. Zum Beispiel braucht ein normaler Dimmer für 12<br />

Scheinwerfer allein schon 12 Adressen. Komplizierte<br />

Multifunktionsscheinwerfer können bis zu 35 aufeinan<strong>der</strong> folgende Kanäle<br />

und somit Adressen benötigen.<br />

Selbst unser Stroboskopadapter lässt sich über 2 Kanäle (Adressen)<br />

ansteuern welche wegen dem aktuellen Layout <strong>der</strong> Schulplatine jedoch nicht<br />

frei wählbar sind. Dieses Problem ergibt sich dadurch, dass vom Port 1, an<br />

dem Schalter angebracht sind, <strong>der</strong> Pin 1.3 bereits als Ausgangspin für das<br />

PWM-Signal welches letztendlich das Stroboskop zum Blitzen bringt, belegt<br />

ist. Wenn wir den Port 4, an dem momentan ein Display angeschlossen ist,<br />

verwenden könnten, wäre die flexible Adressierung zwischen 0 und 255 mit<br />

nur einer zusätzlichen Programmzeile möglich. Zum Test haben wir dem<br />

Micro-Controller und somit dem Stroboskop die Adressen 7 und 8 fest<br />

zugewiesen. Mit dem ersten empfangenen Kanal wird die Blitzfrequenz und<br />

mit dem zweiten die Blitzhelligkeit eingestellt. Die falsche Adressierung und<br />

die Doppelbelegung von Adressen sind die häufigsten Fehlerursachen <strong>bei</strong> <strong>der</strong><br />

Verwendung von <strong>DMX</strong>.<br />

13


3.2.6 Übertragungsprotokoll<br />

Per <strong>DMX</strong>-512 übertragene Daten werden asynchron seriell übertragen. Die<br />

Daten werden in aneinan<strong>der</strong> gereihten 8 Bit großen Frames versendet. Das<br />

heißt, es können pro Frame Werte zwischen 0 und 255 übertragen werden.<br />

Der Master sendet nie mehr Frames als unbedingt benötigt werden, das<br />

heißt, wenn ein Lichtpult 24 Kanäle hat, wird es nur 24 Frames senden und<br />

nicht alle 512, wodurch das Protokoll stark verlangsamt werden würde. Ein<br />

Bit dauert 4 µs woraus sich <strong>bei</strong> 8 Datenbits + 1 Startbit und + 2 Stoppbits<br />

eine Dauer von 44 µs, pro Frame ergibt. Beim Verwenden aller 512<br />

Adressen, einem Startbyte sowie einer RESET-Zeit die die doppelte Dauer<br />

eines Frames beansprucht und den Marks dazwischen wäre die Refreshrate<br />

eines Kanals mit weniger als 50 Hz sehr gering (Refresh ca. alle 23 ms). Zu<br />

<strong>der</strong> Praxis ist also ein Betrieb mit weniger Adressen sinnvoll.<br />

Im Ruhezustand liegt die Datenleitung auf hohem Potential (MARK). Jedes<br />

<strong>DMX</strong>-Datenpaket wird mit einem BREAK, dem so genannten RESET-Signal<br />

(Low-Pegel) von 88µs begonnen. Alle am Bus angeschlossenen Empfänger<br />

müssen auf einen RESET reagieren. Ein RESET beendet in jedem Falle eine<br />

laufende -auch eine nicht abgeschlossene- Übertragung. Gefolgt wird dieser<br />

RESET von einem meistens 8µs lange Mark (High-Signal). Alle Empfänger<br />

müssen in <strong>der</strong> Lage sein, auch diesen MARK-nach-BREAK zu erkennen und<br />

auszuwerten. Empfänger, die darüber hinaus auch in <strong>der</strong> Lage sind, einen<br />

4µs MARK-nach-BREAK zu erkennen und auswerten, dürfen mit <strong>der</strong><br />

Bezeichnung "<strong>DMX</strong>-512/1990 (4µs) gekennzeichnet werden. Nach dem<br />

MARK wird das Startbit (SPACE) des Startbytes gesendet. Alle Bits des<br />

Startbytes haben den Logischen Wert 0, also hat das Startbyte den<br />

Datenwert 00h. Mit dem Datenwert den man im Startbyte übertragen<br />

könnte, ist eine Erweiterung des <strong>DMX</strong>-Protokolls möglich. Aus diesem Grund<br />

sollten Normale Empfänger wie z.B. Dimmer den Empfang, <strong>bei</strong> einem von 0<br />

abweichenden Wert im Startbyte, einstellen.<br />

Beendet wird das Startbyte mit zwei Stoppbits mit dem logischen Wert 1<br />

(MARK). Nach dem Startbyte folgen so viele Datenbytes, getrennt von<br />

MARKs, mit wie benötigt werden.<br />

14


Datenbytes haben denselben Aufbau wie das Startbyte nur dass<br />

unterschiedliche Werte in ihren Datenbits stehen. Nachdem <strong>der</strong> letzte<br />

gewünschte Wert gesendet wurde, kann die Übertragung abbrechen und die<br />

Datenleitung verbleibt so lange auf dem Ruhepegel (MARK), bis <strong>der</strong> nächste<br />

RESET ein neues Paket einleitet.<br />

Signalname Min. Typ. Max. Einheit<br />

RESET (Break) 88 88 - µs<br />

MARK zw. RESET und Startbyte 8 - 1 s µs<br />

Frame-Zeit 43,12 44,0 44,88 µs<br />

Startbit 3,92 4,0 4,08 µs<br />

LSB (nie<strong>der</strong>wertigstes Datenbit) 3,92 4,0 4,08 µs<br />

MSB (höchstwertigstes Datenbit) 3,92 4,0 4,08 µs<br />

Stoppbit 3,92 4,0 4,08 µs<br />

MARK zwischen Frames (Interdigit) 0 0 1,00 s<br />

MARK zwischen Paketen 0 0 1,00 s<br />

15


4. Programmierung<br />

4.1 Der <strong>DMX</strong>-Empfang<br />

Am Anfang waren wir davon überzeugt dass <strong>der</strong> UART unseres Mikro-<br />

Controllers allein schon im Stande sei, <strong>DMX</strong>-Daten zu empfangen und wir<br />

nur noch die Daten des entsprechenden Frames, das <strong>der</strong> <strong>DMX</strong>-Adresse<br />

entspricht, abfragen müssten. Den einfachen Empfang eines Datenbytes<br />

realisierten wir mit dem folgenden fertigen Makro von Herrn Hambsch.<br />

04 EMPFA MACRO<br />

05 jnb ri,$ ;Warten bis Empfang fertig<br />

06 mov a,sbuf ;Zeichen von serielle<br />

07 clr ri ;Sendeflag zurücksetzen<br />

08 ENDM<br />

Lei<strong>der</strong> stellte sich schnell heraus, dass es keine einfachere Möglichkeit gibt,<br />

das richtige Byte zu empfangen, als die empfangenen Frames<br />

durchzuzählen.<br />

Der hier abgebildete Programmauszug zeigt, wie wir das Zählen <strong>der</strong> Frames<br />

realisierten.<br />

32 loop: EMPFA ;Byte empfangen<br />

33 inc R1 ;Bytezähler um 1 erhöhen<br />

34 cjne R1,#8,loop ;Springt wenn R1 nicht = 8<br />

35 mov R3,a ;Schreibt den Akkuinhalt in Register R3<br />

36 EMPFA ;Nächstes Byte empfangen<br />

37 mov P2,a ;Schreibt den Akkuinhalt in Port P2<br />

38 mov R1,#00h ;setzt Framezähler zurück<br />

39 jmp error ;springt zum warten auf den RESET<br />

16


Zu Beginn setzten wir eine Sprungmarke, um diese Programmzeilen, je nach<br />

<strong>DMX</strong>-Adresse, beliebig oft zu durchlaufen. Es wird <strong>der</strong> Block EMPFA<br />

aufgerufen und ein Byte empfangen. Daraufhin wird das Register R1 um eins<br />

inkrementiert. Die darauf folgende Zeile überprüft, ob das Datenbyte, mit<br />

<strong>der</strong> richtigen <strong>DMX</strong>-Adresse empfangen wurde. Über diesen Befehl lässt sich<br />

auch einstellen, welches Datenbyte zur Frequenzerzeugung verwendet<br />

werden soll. In unserem endgültigen Programm springen wir hier allerdings<br />

nicht zu loop son<strong>der</strong>n zu M1, welches für die Frequenzerzeugung zuständig<br />

ist. Am Ende von M1 wird dann wie<strong>der</strong> zurück zu loop gesprungen. Dies<br />

machen wir, da wir <strong>bei</strong> einem Byte, welches nicht unserer angegebenen<br />

<strong>DMX</strong>-Adresse entspricht, 44 Micro Sekunden Zeit haben um die Frequenz zu<br />

erzeugen. Danach wird das Byte, welches emfpangen wurde und im<br />

Akkumulator steht, in das Register R3 geladen. Der darauf folgende <strong>DMX</strong>-<br />

Kanal wird ebenfalls empfangen. Sein Datenwert wird allerdings nicht im<br />

Register R3 gespeichert, son<strong>der</strong>n im Port P2. Nun wird das Register R1<br />

wie<strong>der</strong> mit 0 geladen, damit es wie<strong>der</strong> bis zur richtigen <strong>DMX</strong>-Adresse<br />

hochzählen und danach auf ein eintreffendes Errorflag und somit den RESET<br />

warten kann.<br />

4.1.1 RESET Erkennung mittels Timer<br />

Naheliegend war es, ein Programm in Assembler zu schreiben, das <strong>bei</strong> je<strong>der</strong><br />

fallenden Flanke des <strong>DMX</strong>-Signals einen Timer startet, welcher nach 88<br />

Mikro Sekunden überläuft. Während <strong>der</strong> Timer läuft prüft das Programm auf<br />

steigende Flanken im Signal geprüft. Falls solche festgestellt werden, wird<br />

<strong>der</strong> Timer an dieser Stelle sofort angehalten und es über das Überlaufsflag<br />

des Timers wird festgestellt, ob dieser zwischenzeitlich übergelaufen ist. Ist<br />

das <strong>der</strong> Fall, so wird <strong>der</strong> vergangene Low-Pegel als RESET gewertet, ein<br />

Zähler zurückgesetzt und <strong>bei</strong> jedem, durch das oben gezeigte Makro<br />

EMPFA, empfange Byte um eins inkrementiert. Das Programm sollte uns <strong>der</strong><br />

Einfachheit halber zuerst nur das erste, nach dem RESET empfangene Byte,<br />

am Port P2 (LED - Anzeige) ausgeben.<br />

17


Der folgende Programmausschnitt zeigt die Stelle im Programm an <strong>der</strong> auf<br />

den RESET gewartet wird.<br />

1 rsWart:<br />

2 mov TL0,#8Ah ;Reload Wert auf 138 festlegen<br />

3 jb P3.0,$ ;wartet auf <strong>DMX</strong> = 0<br />

4 setb TR0 ;Timer starten<br />

5 jnb P3.0,$ ;wartet auf <strong>DMX</strong> = 1<br />

6 clr TR0 ;stoppt Timer<br />

7 jnb TF0,rsWart ;Rücksprung wenn nicht übergelaufen<br />

Der Reloadwert für den Timer errechnet sich hier folgen<strong>der</strong>maßen:<br />

12<br />

Maschinenzyklus: = 0,75µs<br />

16MHZ<br />

Anzahl <strong>der</strong> Zyklen:<br />

Reloadwert: 255 – 117 = 138<br />

in Hex:<br />

88µs / 0,75µs = ca. 117 Maschinenzyklen<br />

8A<br />

Zu unserer Enttäuschung passierte erst einmal gar nichts und was wir auch<br />

versuchten - es war wie verhext - <strong>der</strong> empfang funktionierte einfach nicht.<br />

Es dauerte Stunden bis wir, nach <strong>der</strong> Vermutung unseres Projektbetreuers<br />

Herr Amann, herausfanden, dass das kleine RS-232 Pegelwandler-IC<br />

(MAX232CPE) unsere <strong>DMX</strong>-Signale verschluckt und auf Masse ableitete.<br />

Diese IC ist für die Kommunikation zwischen Controller und Computer auf<br />

<strong>der</strong> Platine angebracht. Glücklicherweise war es auf einem Sockel und ließ<br />

sich leicht herausnehmen. Nun empfingen wir etwas, doch lei<strong>der</strong> war es ein<br />

wildes Durcheinan<strong>der</strong>. Man konnte zwar erkennen, dass sich das wilde<br />

Blinken <strong>der</strong> Dioden je nach Fa<strong>der</strong>stellung am Pult än<strong>der</strong>te, man hatte jedoch<br />

das Gefühl es würden immer nur halbe Bytes empfangen werden. Dieses<br />

Problem lösten wir durch das Neustarten des UARTs nach jedem RESET im<br />

<strong>DMX</strong>-Signal. Jetzt konnten wir vollständige Frames empfangen und durch<br />

das Zählen dieser sogar ganz bestimmte Bytes ausgeben.<br />

18


Zwei Probleme bleiben uns trotzdem noch, weshalb wir diese Art des<br />

Empfangs letztendlich auch wie<strong>der</strong> verwarfen. Erstens verbrauchte diese<br />

Methode zur Erkennung des RESETs viel kostbare Rechenzeit und zweitens,<br />

was noch viel schlimmer war, es wurden immer mehrere Kanäle gleichzeitig<br />

empfangen. Wir schafften es einfach nicht das zweite Problem zu lösen<br />

welches die Datenauswertung unmöglich machte. Stellte man zum Beispiel<br />

den Empfang des 3. Kanals ein, so bekam man die Werte des 6. und 9. noch<br />

dazu, wo<strong>bei</strong> <strong>der</strong> letzte Wert immer am besten angezeigt wurde, weil er am<br />

längsten im Port P2 stand. Nach langem Tüfteln überwanden wir uns dann<br />

dazu, eine an<strong>der</strong>e von Herrn Amann vorgeschlagene Art <strong>der</strong> RESET-<br />

Erkennung auszuprobieren: Die Auswertung des Errorflags.<br />

4.1.2 RESET Erkennung mittels Errorflag<br />

Da uns vom <strong>DMX</strong>-Signal ein Stoppbit vorgegeben ist, war die Idee<br />

naheliegend, dieses auch auszuwerten. Da im RESET kein Stoppbit gesendet<br />

wird, lässt sich dieser über das Errorflag leicht rausfiltern. Dies werteten wir<br />

mit folgenden Zeilen aus:<br />

27 error: anl SCON, #127d ;Errorflag löschen<br />

28 EMPFA ;nächstes Byte empfangen<br />

29 mov a, SCON ;SCHON-Register mit Errorflag<br />

30 anl a,#128d ;Errorflag freistellen<br />

31 jz error ;Wie<strong>der</strong>holung wenn kein Frame Error<br />

Wir setzten zu Beginn unseres Programms eine Sprungmarke, um je<strong>der</strong>zeit<br />

wie<strong>der</strong> zu <strong>der</strong> Errorflag-Filterung springen zu können. In <strong>der</strong> gleichen Zeile<br />

löschten wir das höchstwertige Bit. Daraufhin benutzten wir wie<strong>der</strong> das<br />

Makro EMPFA, um ein Datenbyte zu empfangen. Der empfangene Wert<br />

steht nach dem Empfang im Akkumulator. Da in „Assembler“ AND-<br />

Verknüpfungen nur mittels Akkumulator gemacht werden können, luden wir<br />

in Zeile 29 den Wert, aus dem Register SCHON, in den Akkumulator.<br />

19


Mit <strong>der</strong> Anweisung anl a,#128d wurden alle Bits, bis auf das höchstwertige<br />

gelöscht und das höchstwertige Bit blieb erhalten. Ist das Errorflag = 0, so<br />

war ein Stoppbit am Ende des Datenbytes und wir hattenein gültiges <strong>DMX</strong>-<br />

Byte empfangen. In diesem Fall sprangen wir zu unserer loop Marke zurück.<br />

Ist das Errorflag = 1, so war am Ende des empfangenem Datenbytes kein<br />

Stoppbit und wir hatten den RESET gefunden.<br />

Wir testeten diese Methode ebenso intensiv, wie die Methode mit dem 88<br />

Mikro-Sekunden-Timer und haben uns auch letztendlich für diese Methode<br />

entschieden.<br />

4.2 Frequenzerzeugung<br />

4.2.1 Frequenzerzeugung mit zwei Timern<br />

Die Idee dieses Programms war es, mittels zwei Timern, Timer 0 und Timer<br />

1 die Frequenz für das Stroboskop zu erzeugen welche <strong>bei</strong> je<strong>der</strong><br />

Aufwärtsflanke einen Blitz auslöste. Hier<strong>bei</strong> erzeugte <strong>der</strong> Timer 1 eine High<br />

Zeit von 17,5 ms und <strong>der</strong> Timer 0 eine Low Zeit zwischen 18,5 ms und einer<br />

Sekunde. Die Low-Zeit wurde über den empfangenen <strong>DMX</strong>-Wert eingestellt,<br />

wo<strong>bei</strong> <strong>der</strong> höchste <strong>DMX</strong>-Wert von 255 für die kürzeste Low-Zeit und <strong>der</strong><br />

niedrigste <strong>DMX</strong>-Wert 0 für eine Sekunde Low-Zeit stand. Das war einfach<br />

und unkompliziert weil man den empfangenen Wert als Reloadwert für den<br />

Timer 0 nehmen konnte. Damit die Timer diese recht langen Zeiten<br />

erreichen konnten, wurden sie über ein externes Rechtecksignal von 250Hz<br />

getaktet. Dieses Signal wurde über ein NE555 IC im Multivibratorbetrieb<br />

erzeugt. Dies erreichten wir mit einem weitern Assembler-Programm,<br />

welches die <strong>bei</strong>den Timer initialisierte und ebenfalls automatisch startete und<br />

stoppte. Sobald Timer 0 übergelaufen ist wurde <strong>der</strong> Timer 1 gestartet und<br />

<strong>der</strong> Timer 0 wie<strong>der</strong> reloaded. Ist <strong>der</strong> Timer 1 übergelaufen so wurde <strong>der</strong><br />

Timer 0 gestartet. Allerdings war uns <strong>bei</strong>m testen dieses Programmes<br />

aufgefallen, dass diese Lösung nicht optimal war.<br />

20


Das Problem war, dass <strong>der</strong> Timer, <strong>der</strong> für die Low Zeit zuständig war, immer<br />

zuerst überlaufen musste, bevor er den empfangenen Wert laden konnte<br />

und es <strong>bei</strong> dem kleinsten Wert 1 Sekunde dauerte, bis <strong>der</strong> Timer 0 eine<br />

schnellere Frequenz erzeugen konnte. Solche stufenartigen Verän<strong>der</strong>ungen<br />

<strong>der</strong> Blitzfrequenz wären im Showeinsatz störend. Ein Versuch dem Problem<br />

Abhilfe zu schaffen war das sofortige Neu-Laden des Timers 0, was dazu<br />

führte, dass währenden einer <strong>DMX</strong>-Wert Än<strong>der</strong>ung gar keine Frequenz mehr<br />

erzeugt wurde. Zusätzlich ließ sich keine Falsh-Funktion mehr realisieren.<br />

Deswegen haben wir uns für eine an<strong>der</strong>e Methode entschieden.<br />

(PAP zur Frequenzerzeugung<br />

mit zwei Timern)<br />

21


4.2.2 Frequenzerzeugung mit einem Timer<br />

Unsere nächste Idee war es, einen Timer zu starten welcher je nach<br />

empfangenem Wert zwischen 1s und 18ms überläuft und einem NE555 IC<br />

eine kurze steigende und wie<strong>der</strong> fallende Flanke gibt. Der NE555 Baustein<br />

sollte daraufhin im Monofloppbetrieb eine High Zeit mit 18ms machen.<br />

Hier<strong>bei</strong> wurde <strong>der</strong> Timer wie<strong>der</strong> mit einem 4ms Clock von außen betrieben.<br />

Nach dem Testen dieses Programms, welches wie<strong>der</strong> in „Assembler“<br />

geschrieben war, wurde uns jedoch schnell klar, dass diese Methode auch<br />

nicht funktionieren konnte. Das Problem an diesem Programm war, dass <strong>der</strong><br />

NE555 doch eine längere High Zeit benötigt als wir gedacht hatten. Da wir<br />

aber unbedingt drauf achten mussten, nicht zu viel Zeit in dem<br />

Frequenzerzeugendem Teil des Programms zuverschwenden, da ansonsten<br />

ein Empfang ausfallen könnte, konnten wir dem NE555 keine längere High<br />

Zeit geben.<br />

Auch diese Methode war wohl nicht die richtige.<br />

4.2.3 Frequenzerzeugung mit PCA-Timer<br />

Nachdem wir mit unserem Versuch die Frequenz über 1 Timer zu erzeugen<br />

sehr unzufrieden waren, suchten wir nach einer an<strong>der</strong>en Möglichkeit. Unser<br />

Projektbetreuer Herr Amann machte uns auf einen Timer unseres<br />

Mikrokontrollers aufmerksam, <strong>der</strong> nur dazu gedacht war, PWM-Signale zu<br />

erzeugen. Dieser PCA-Timer konnte durch entsprechende Konfiguration,<br />

über den Timer 0 geclockt werden. Man konnte nun den PCA-Timer so<br />

einstellen, dass das Verhältnis von High-Zeit zu Low-Zeit in etwa gleich war<br />

und die Ausgangsfrequenz durch das Än<strong>der</strong>n des Timer 0 Reloadwerts<br />

beeinflussten. Wenn man nun den PCA-Timer mit dem hexadezimalen Wert<br />

80h- <strong>der</strong> Hälfte von 256 lud, so erzeugte dieser eine gleichmäßige Frequenz.<br />

Der Timer 0 wurde im Autoreload-Modus betrieben und bekam immer den<br />

neusten empfangenen <strong>DMX</strong>-Wert übergeben.<br />

22


Das einzige Problem war da<strong>bei</strong> nur noch, dass wir es mit <strong>der</strong> Frequenz des<br />

Mikro-Controllers (16MHz) nie geschafft hätten, Ausgangsfrequenzen<br />

zwischen 25 Hz und einem Herz zu erzeugen. Dazu lief <strong>der</strong> Timer 0 einfach<br />

viel zu schnell, obwohl die Controller-Grundfrequenz bereits durch 12 geteilt<br />

war. Abhilfe schaffte auch hier eine von außen eingespeiste Clockfrequenz<br />

von 50 kHz. Auf 50 kHz waren wir durch das Ausprobieren verschiedener<br />

Frequenzen gekommen. Dieses 50kHz Rechtecksignal wurde wie<strong>der</strong>um<br />

durch die Multivibratorschaltung eines NE555 IC’s generiert. Letztendlich<br />

entstand die Ausgangsfrequenz für das Stroboskop folgen<strong>der</strong>maßen:<br />

Grundfrequenz<br />

(50kHz)<br />

÷12<br />

÷ Timer 0<br />

Wert<br />

(1 bis 256)<br />

÷ 256<br />

Ganz perfekt passt selbst die Clockfrequenz von 50kHz auch nicht und so<br />

dürfen Werte über 248 nicht in den Timer 0 geladen werden. Um dies zu<br />

verhin<strong>der</strong>n übersetzt unser Programm jeden empfangenen <strong>DMX</strong>-Wert über<br />

eine Codetabelle. Der aus <strong>der</strong> Codetabelle entnommene Wert wird dann in<br />

den Timer 0 Geladen. Außerdem können über diese Codetabelle beson<strong>der</strong>e<br />

Werte für zwei verschiedene Empfangswerte vergeben werden, was für die<br />

Flash Funktion beson<strong>der</strong>s wichtig ist.<br />

4.3 Flash Funktion<br />

Jetzt wo die Steuerfrequenz für das Stroboskop über den PCA-Timer im<br />

Hintergrund erzeugt wird haben wir im Hauptprogramm genügend Zeit die<br />

Flash Funktion zu behandeln. Durch die Flash Funktion ist es möglich auf<br />

Knopfdruck am Pult einzelne Blitze zu erzeugen. Ganz entscheidend da<strong>bei</strong> ist<br />

wie<strong>der</strong>, dass wir den empfangenen <strong>DMX</strong>-Wert, <strong>der</strong> für die Blitzfrequenz<br />

verantwortlich sein soll, zuerst in einer Codetabelle übersetzen. Diese<br />

Tabelle Macht aus den Werten 0 bis 2 den Wert 254, <strong>der</strong> Wert 3 wird mit 0<br />

Übersetzt. Die Weiteren Werte werden dann immer um den Faktor 1 erhöht<br />

zurückgegeben. Die letzten 3 Empfangenen <strong>DMX</strong>-Wert ab 253 werden mit<br />

255 übersetzt.<br />

23


Um einzeln Flashen zu können muss zuerst <strong>der</strong> <strong>DMX</strong>-Wert 0 gesendet<br />

werden. Diesen Wert stellt man dadurch ein, dass man Fades des<br />

entsprechenden Kanals ganz nach unten zieht. Der Empfangswert 0 Wird im<br />

Mikro-Kontroller mit 254 übersetzt und verursacht ein Stoppen des PCA-<br />

Timers, sobald dieser das Ausgangssignal auf High gesetzt hat. Würde er<br />

sofort angehalten werden, könnte es sein, dass <strong>der</strong> Ausgang gerade auf Low<br />

ist und alle Signale die von nun an ausgegeben werden “verschluckt“, also<br />

auf Masse abgeleitet werden. Ein drücken <strong>der</strong> Flashtaste am Pult löst jetzt<br />

das Senden des <strong>DMX</strong>-Werts 255 aus welcher auch mit dem Wert 255<br />

übersetzt wird und den Ausgangsport sofort auf high setzt. Die erzeugte<br />

Aufwärtsflanke löst einen Blitz am Stroboskop aus. Jetzt bleibt <strong>der</strong> Port<br />

solange auf High, bis wie<strong>der</strong> ein an<strong>der</strong>er <strong>DMX</strong>-Wert eingestellt wird, <strong>der</strong> das<br />

Signal zurücksetzt.<br />

03 TB BIT 00H ;Definiert das TestBit TB<br />

48 PruefWert:<br />

49 cjne a,#0FEh,PWMgen ;Springt wenn <strong>DMX</strong>-Wert ungleich 254<br />

50 jb TB,next ;Springt <strong>bei</strong> gesetztem TestBit<br />

51 jnb P1.3, PWMgen ;macht noch so lange mit Signalerzeugen<br />

weiter bis <strong>der</strong> Pin 1.3<br />

den High-Zustand erreicht hat<br />

52 setb TB ;setzt das TestBit um <strong>bei</strong>m nächsten<br />

mal zu überprüfen ob <strong>der</strong> Wert das<br />

letzten Empfangs auch schon 254 war<br />

53 next:<br />

54 clr CR ;Schaltet PCA aus um Einzelblitze<br />

zu erzeugen<br />

55 clr P1.3 ;High-Flanke erzeugt Blitz<br />

56 jmp loop ;weiter empfangen<br />

57 PWMgen:<br />

58 setb P1.3 ;Setzt Port 1.3 auf High<br />

59 setb CR ;Startet PCA-Timer falls er aus ist<br />

60 clr TB ;löscht Testbit<br />

61 mov TH0, a ;Ladet den ausgesuchten wert aus <strong>der</strong><br />

Tabelle in das High Byte des Timer 0<br />

62 jmp loop ;weitere Bytes empfangen<br />

24


4.4 Tabelle mittels Java Programm<br />

Wir haben uns dafür entschieden eine Tabelle im Data bereich zu verwenden<br />

da wir so leicht die Werte verbessern und auch problemlos effektiver<br />

auswerten konnten. Zum Beispiel konnten wir so den werte Bereich von 3<br />

bis 253 abgrenzen. War <strong>der</strong> Wert, <strong>der</strong> empfangen wurde, größer als 253 so<br />

wurde immer 255 als Wert aus <strong>der</strong> Tabelle entnommen und wir hatten etwas<br />

Toleranz im oberen Bereich. Das gleiche war im Bereich von 0 bis 3, des<br />

empfangenem Datenbytes, <strong>der</strong> Fall, nur dass hier <strong>der</strong> Wert aus <strong>der</strong> Tabelle<br />

immer 254 war und uns auch etwas Toleranz im unteren Bereich gab. Dies<br />

war auch notwendig, da manche <strong>DMX</strong>-Pulte keine 255 senden auch wenn sie<br />

voll aufgedreht sind.<br />

Um die Tabelle zu erstellen haben wir uns für ein Java Programm<br />

entschieden welches die Tabelle errechnete und diese dann fertig in eine<br />

Textdatei schrieb. Die Entscheidung für das Java Programm haben wir<br />

getroffen, um so nicht immer von neuem die ganze Tabelle erstellen zu<br />

müssen. Dies wäre ein mühsames Verfahren gewesen. Ebenfalls lies sich<br />

dadurch sehr schnell eine neue Tabelle mit an<strong>der</strong>en Werten erstellen, in dem<br />

man im Java Programm einen Term umschreibt. Aus diesem Grund haben<br />

wir uns für ein Java Programm entschieden.<br />

25


5. Elektronik<br />

5.1 Rechtecksignal Verstärker<br />

Im Idealfall sollte das Stroboskop, das wir verwenden mit 12V<br />

Steuerspannung angesteuert werden. Unser Mikro Controller ar<strong>bei</strong>tet<br />

allerdings nur mit einer Spannung von 5V, welche auch an seinen Ports<br />

anliegt. Zudem wäre <strong>der</strong> Strom an den Ports des Mikro-Controllers viel zu<br />

schwach um die Elektronik des Stroboskops zu treiben. Also mussten wir uns<br />

etwas überlegen um die 5V Ausgangsspannung des Mikro Controllers, auf<br />

12V zu verstärken. Dies haben wir mit einem ULN2003A IC verwirklicht.<br />

Der Baustein wird mit einer Versorgungsspannung von 12V betrieben und<br />

verstärkt das Signal deshalb von 5V auf die nötigen 12V. Lei<strong>der</strong> Invertiert<br />

das IC sein Eingangssignal da<strong>bei</strong>, weshalb wir das Signal zweimal durch den<br />

Baustein führen. Das IC ist folgen<strong>der</strong>maßen beschaltet: An seinem Pin 3<br />

liegt das vom Mikro-Controller kommende Signal an und wird am Pin 14<br />

bereits verstärkt, jedoch invertiert ausgegeben. Nun wird dieses Signal auf<br />

den Pin 1 zurückgeführt wodurch es dann wie<strong>der</strong> invertiert am Pin 16<br />

ausgegeben wird. Mit dieser doppelten Invertierung erhalten wir ein<br />

sauberes Signal, gleich wie das vom Mikro-Controller ausgehende, nur dass<br />

dieses nun 0V für Low und 12V für High hat.<br />

26


5.2 RS485 – TTL Pegelwandler<br />

Dieses 75176-IC war nötig um das <strong>DMX</strong>-Signal, welches auf dem RS-485<br />

Pegel Basiert, für unseren Mikro-Controller anzupassen. Der RS485-TTL<br />

Wandler erhält zwei Signale wovon eines invertiert ist. Seine Aufgabe ist es<br />

nun Diese zwei Signale zu vergleichen und daraus einen 0V/5V TTL-Pegel-<br />

Signal zu bilden. Dieser TTL Pegel ist wie<strong>der</strong>um einwandfrei für unseren<br />

Micro Controller geeignet und kann direkt am Portpin 3.0 angelegt werden.<br />

Dieses Bild von soudlight.de zeigt die Verschaltung<br />

des 75176 IC’s im <strong>DMX</strong>-Bus:<br />

27


5.3 50kHz Rechtecksignal mit NE555 IC<br />

Die Frequenz von 50kHz hat sich durch Tests mit dem PCA Timer als die<br />

günstigste erwiesen. Wir erzeugen sie nun mit Hilfe eines NE555 im<br />

Multivibrator Betrieb.<br />

1<br />

1,46<br />

50 ⋅10³<br />

=<br />

−<br />

s ( ³ + 2 ⋅ 500) ⋅10<br />

⋅10<br />

R A<br />

9<br />

| ⋅ 10 ⋅10<br />

−9<br />

500 3 1 −<br />

⋅10<br />

⋅10<br />

9<br />

1,46 s<br />

As<br />

v<br />

=<br />

R<br />

A<br />

1<br />

+ 2 ⋅500<br />

342,46 ⋅10<br />

−6<br />

=<br />

R A<br />

1<br />

+ 2 ⋅ 500<br />

10 6<br />

= R + 2 500<br />

342,46<br />

⋅ A<br />

2 ,9K = RA + 1k<br />

| − 1k<br />

1 ,9k =<br />

R A<br />

28


6. Tagesberichte<br />

14.11.2005:<br />

Zuerst einmal mussten wir die Anfor<strong>der</strong>ungen unserer Geräte erfassen. Dazu<br />

haben wir die Signale des bisher verwendeten Lichtcontrollers ausgemessen<br />

und da<strong>bei</strong> folgende Werte festgestellt:<br />

- Rechteck-Signal mit 0V für Low und 12V für High und nicht wie auf dem<br />

Gehäuse angegeben 10V High<br />

- minimale High Zeit 17,5ms<br />

- minimale Low Zeit 18,5ms<br />

Dies war nötig um die Ausgabe<br />

des Mikrokontrollers ideal<br />

an das Stroboskop anzupassen.<br />

(Datenaufkleber auf Lichkontroller)<br />

21.11.2005:<br />

An diesem Tag haben wir uns die<br />

Frage gestellt, mit welcher<br />

Programmiersprache wir dieses<br />

Projekt angehen sollten. Nach kurzer<br />

Überlegung war uns aber klar, dass<br />

wir in „Assembler“ programmieren<br />

müssen. Diese Entscheidung haben<br />

wir getroffen, weil das <strong>DMX</strong>-Protokoll<br />

sehr zeitkritisch und schnell ist. Die<br />

Programmiersprache „C“ wäre vermutlich zu langsam.<br />

29


28.11.2005:<br />

Am 28.11.2005 haben wir herausgefunden, dass unser Projekt mit unserem<br />

Schulmikrocontroller, dem 80C535, nicht möglich wird. Dieser kommt nicht<br />

auf die notwendige Geschwindigkeit, um die <strong>DMX</strong>-Bytes zu empfangen. Nach<br />

Absprache mit unserem<br />

Betreuer Herr Amann,<br />

haben wir uns für einen<br />

an<strong>der</strong>en Mikrocontroller,<br />

den Atmel T89C51RD2,<br />

entschieden. Nach<br />

Absprache mit Herrn<br />

Amann fanden wir heraus, dass wir ein 16MHz Quarz benötigen. Da <strong>der</strong><br />

Atmel T89C51RD2 noch mit einem 12MHz Quarz bestückt war, haben wir<br />

dieses ausgelötet und durch ein 16MHz Quarz ersetzt.<br />

5.12.2005, 12.12.2005 & 19.12.2005:<br />

An diesem Montag suchten wir nach Informationen<br />

über das <strong>DMX</strong>-Protokoll sowie nach Möglichkeiten<br />

unser Projekt umzusetzen. An diesem Montag<br />

entwarfen wir ebenfalls zum ersten mal ein<br />

komplettes <strong>DMX</strong>-Empfangsprogramm. Dieses<br />

bestand <strong>der</strong>zeit nur aus <strong>der</strong> UART Initialisierung<br />

und einer Routine, welche die eintreffenden Bytes<br />

zählt.<br />

30


9.1.2006:<br />

Da wir keinen Stecker für das <strong>DMX</strong>-Pult hatten, über den wir das<br />

ausgegebene <strong>DMX</strong>-Signal auf den Mikro Controller geben konnten, mussten<br />

wir uns ein <strong>DMX</strong>-Kabel selbst löten. Wir hatten ein altes abgeschnittenes<br />

Kabel zur verfügen von dem wir den Stecker<br />

entfernten und auf ein neues Kabel auflöteten.<br />

Von nun an benutzen wir dieses Kabel, um das<br />

<strong>DMX</strong>-Signal, am Pult abzugreifen. Das Signal<br />

wurde über das Kabel auf den RS485 Wandler<br />

geführt weshalb wir am an<strong>der</strong>en Kabelende<br />

Stecker für die Schulplatine befestigten.<br />

16.1.2006:<br />

An diesem Tag haben wir mehrere<br />

Verbesserungen an unserem<br />

Programm gemacht und mehrere<br />

Tests durchgeführt. Allerdings<br />

mussten wir feststellen, dass <strong>der</strong><br />

UART alleine nicht in <strong>der</strong> Lage ist,<br />

die einteffenden <strong>DMX</strong>-Bytes zu<br />

empfangen. Aufgrund dessen<br />

mussten wir uns eine an<strong>der</strong>e V ariante einfallen lassen.<br />

31


23.1.2006:<br />

Hier haben wir das Programm resetTimer88.A51 erstellt.<br />

Wir testen dieses neu erstellte Programm<br />

und schrieben es mehrere male<br />

um. Allerdings mussten wir<br />

feststellen, dass es nicht gehen<br />

kann, da wir lei<strong>der</strong> ein Defektes<br />

<strong>DMX</strong>-Pult hatten.<br />

30.1.2006:<br />

An diesem Tag haben wir bemerkt,<br />

dass <strong>der</strong> MAX232 Baustein, den<br />

Empfang stört. Wir entfernten diesen<br />

auch an demselben Tag und <strong>der</strong><br />

Empfang Funktionierte zum erstem<br />

mal. Lei<strong>der</strong> war dieser noch<br />

fehlerhaft, da er kein Spezielles<br />

Datenbyte empfing. Zusätzlich<br />

haben wir an diesem Tag ein kleines Programm für den Schulmikrokontroller<br />

80535 erstellt, das ein <strong>DMX</strong>–Signal, an einem Portpin Simuliert. Mit diesem<br />

Programm hatten wir die Kontrolle darüber, wann, welches und wie oft ein<br />

Byte gesendet wird.<br />

32


6.2.2006:<br />

An diesem Tag haben wir versucht, unser<br />

bisheriges Programm zu verbessern. Wir<br />

haben einige stellen umgeschrieben, um zu<br />

sehen woran es liegt, dass <strong>der</strong> Empfang<br />

<strong>der</strong>art fehlerhaft ist. Nach längerer<br />

Testphase haben wir dann allerdings doch<br />

beschlossen, eine an<strong>der</strong>e Variante des<br />

Empfangs zu versuchen.<br />

13.2.2006:<br />

An diesem Tag haben wir erneut ein<br />

Programm in Assembler geschrieben,<br />

welches ein sauberes Stroboskop Signal<br />

generiert. Dieses Programm war<br />

notwendig, um die Ausgabe des Micro<br />

Controllers mit Hilfe von Elektronik an<br />

das Stroboskop anzupassen. Dies taten<br />

wir um zu sehen, ob wir den Analogen<br />

Lichtkontroller überhaupt ersetzen können.<br />

6.3.2006:<br />

Am 6.3.2006, haben wir das<br />

Programm, StopUnd9bit.A51<br />

geschrieben, welches mit Hilfe<br />

Errorflags den RESET erkennt. Nach<br />

kurzem testen lief <strong>der</strong> Empfang, <strong>der</strong><br />

<strong>DMX</strong>-Bytes, einwandfrei und ohne<br />

Fehler.<br />

33


13.3.2006 & 20.3.2006:<br />

An diesen Tagen, haben wir unsere vorhandenen Programme kombiniert.<br />

Wir erstellten ein Programm, welches aus dem Errorflag Programm und aus<br />

den 2 Timern bestand. Ebenfalls zeichneten wir hier einen PAP, welcher die<br />

ar<strong>bei</strong>tsweiße, <strong>der</strong> 2 Timer, verdeutlicht. Nach längerer Testfase und<br />

Verbessehrungen an diesem Tag, stellten wir fest, dass dies nicht die<br />

optimale Lösung ist. Es gab mehrere Probleme. Beim hochziehen <strong>der</strong> Fa<strong>der</strong><br />

am <strong>DMX</strong>-Pult gab es keine Blitze, es war keine Flash Funktion möglich und<br />

es gab nur 3 verschieden schnelle Blitzarten <strong>bei</strong>m Stroboskop.<br />

27.3.2006:<br />

Felix versuchte mit Hilfe eines<br />

Monoflops ein Signal zu erzeugen,<br />

welches einen 4ms Takt macht und<br />

mit demselben Baustein das<br />

Stroboskop steuert. Allerdings hat<br />

dies an diesem Tag nicht Funktioniert<br />

da erst Spät bemerkt wurde, dass<br />

viele Bausteine Defekt waren. Karl-<br />

Heinz schrieb ein Assembler Programm, welches mit 2 Timern betrieben<br />

wird. Die Timer werden hier<strong>bei</strong> mit einem 4ms Takt von außen betrieben.<br />

Dies wurde ebenfalls getestet, jedoch nicht mit dem Monoflop, son<strong>der</strong>n mit<br />

einem Frequenz–Generator.<br />

34


3.4.2006:<br />

Felix übernahm den Hardware Teil. Er machte diverse Rechnungen um zwei<br />

Monoflops zu schalten. Eines, welches einen 4ms Takt erzeugt und ein<br />

an<strong>der</strong>es, das eine High zeit von 18ms macht, welches durch den Timer<br />

getriggert wird. Karl-Heinz übernahm den Software Teil. Er schrieb ein<br />

Assembler Programm, welches mit Hilfe des Timer 0 und einem 4ms Takt<br />

Eingangs, das zweite Monoflop, mit Hilfe einer Kurzen High–Zeit am Portpin<br />

P3.7 ansteuerte. (Timer4msV2.A51) Er zeichnete auch die vorhandene<br />

Elektronische Schaltung ab.<br />

6.4.2006:<br />

An diesem Tag machten wir mehrere Messungen, um die best mögliche<br />

Frequenz für das Timer 0 / PCA Programm zu finden. Doch dies war an<br />

diesem Tag lei<strong>der</strong> ohne Erfolg.<br />

7.4.2006:<br />

Zusammen haben wir nochmals<br />

getestet, welches die optimale<br />

Frequenz ist. Hier<strong>bei</strong> fanden wir<br />

heraus, dass diese Frequenz 50kHz<br />

sind. Felix errechnete die Schaltung<br />

zur 50kHz Erzeugung mit Hilfe des<br />

Bausteins NE555. Karl-Heinz fügte<br />

die beste Lösung, für den Empfang<br />

mit <strong>der</strong> für die Frequenzerzeugung zu einem Programm „V5“ zusammen.<br />

Dieses war die Grundform unseres fertigen Programms. Alles was danach<br />

noch Verbessert wurde, waren kleine Funktionsverbesserungen. Er schrieb<br />

ebenfalls ein Java Programm, dass die Codetabelle automatisch in eine *.txt<br />

Datei schreibt. Zusammen haben wir dann noch eine Verbesserung des V5<br />

Programms vorgenommen, welche den unteren und den oberen Bereich des<br />

<strong>DMX</strong> – Signals auswertet und sich somit Einzelblitze erzeugen lassen.<br />

35


10.4.2006:<br />

An diesem Montag testeten wir das<br />

verbesserte V5 Programm. Hier<br />

schrieben wir das V5 Programm<br />

erneut um. Damit war nun auch die<br />

Flash Funktion möglich. Es hat<br />

einwandfreie Stufen, die kaum<br />

voneinan<strong>der</strong> zu unterscheiden sind.<br />

An demselben Tag testeten wir auch<br />

die von Felix gelötete Platine, auf<br />

welcher, <strong>der</strong> TTL–RS485 Wandler ist, mit erfolg.<br />

Verwendete Quellen:<br />

Punkt 1. bis 2.1.3 :<br />

Punkt 3. bis 3.2.6 :<br />

angelehnt an www.Wikipedia.org<br />

angelehnt an www.soundlight.de und<br />

www.wikipedia.org<br />

36


01 #include <br />

02<br />

03 TB BIT 00H ;Definiert das Testbit TB<br />

04 EMPFA MACRO<br />

05 jnb ri,$ ;Warten bis Empfang fertig<br />

06 mov a,sbuf ;Zeichen von serielle<br />

Schnittstelle<br />

07 clr ri ;Sendeflag zurücksetzen<br />

08 ENDM<br />

09 org 0000h<br />

10 start:<br />

11 mov TMOD,#00000110b ;Timer 0 Autoreload Counter<br />

initialisieren<br />

12 setb TR0 ;Startet Timer 0<br />

13 mov TH0,#00h ;Reloadwert für Timer 0<br />

14 mov CMOD,#04h ;Triggerung durch Timer 0<br />

(immer wenn Timer 0 Überläuft<br />

wird PCA-Counter um 1 hochgezählt)<br />

15 mov CCAPM0,#01000010b ;PWM Ausgang P1.3<br />

16 mov CCAP0L,#80h ;Vergleichswert für PCA <strong>bei</strong> dem am<br />

Port 1.3 getoggelt wird (laden)<br />

17 mov CCAP0H,#80h ;Vergleichswert für PCA <strong>bei</strong> dem am<br />

Port 1.3 getoggelt wird (vorladen)<br />

18 mov cl,#0<br />

19 setb CR ;Startet PCA - Timer<br />

20 mov sp,#80h ;Stack Pointer auf 80 um Register<br />

zu schützen<br />

21 mov P1,#0 ;Port 1 sicherheitshalber löschen<br />

22 mov SCON,#90h ;SMOD1 8 N 2 250 kBaud 16MHz<br />

23 mov P2,#1<br />

24 mov R1,#0h ;Löscht das Frame zähl Register<br />

25 orl PCON,#64d ;Läd SMOD0 mit 1<br />

26 setb REN ;startet UART<br />

38


27 error: anl SCON, #127d ;Errorflag löschen<br />

28 EMPFA ;nächstes Byte empfangen<br />

29 mov a,SCON ;SCHON-Register mit Errorflag<br />

30 anl a,#128d ;Errorflag freistellen<br />

31 jz error ;Wie<strong>der</strong>holung wenn kein Frame Error<br />

32 loop: EMPFA ;Byte empfangen<br />

33 inc R1 ;Bytezähler um 1 erhöhen<br />

34 cjne R1,#8, M1 ;Springt wenn R1 nicht = 8<br />

35 mov R3,a ;Schreibt den Akkuinhalt in Register<br />

R3<br />

36 EMPFA ;Nächstes Byte empfangen<br />

37 mov P2,a ;Schreibt den Akku Inhalt in den<br />

Port P2<br />

38 mov R1,#00h ;setzt Framezähler zurück<br />

39 jmp error ;springt zum warten auf den RESET<br />

40 M1:<br />

41 mov dptr,#tabelle ;ladet den Datenpointer mit <strong>der</strong><br />

adresse wo tabelle beginnt<br />

42 mov a,R3 ;ladet den Empfangenen Wert in den<br />

Akku<br />

43 movc a,@a+dptr ;holt sich den entsprechenden<br />

Wert(Datenpointer+Empfangener Wert)<br />

und ladet den Wert in den Akku<br />

44 cjne a,#0FFh,PruefWert ;Springt wenn <strong>der</strong> <strong>DMX</strong>-Wert ungleich<br />

255 ist<br />

45 clr CR ;Schaltet PCA aus um einzelblitze zu<br />

erzeugen<br />

46 setb P1.3 ;High-Flanke erzeugt Blitz<br />

47 jmp loop<br />

48 PruefWert:<br />

49 cjne a, #0FEh, PWMgen ;Springt wenn <strong>DMX</strong>-Wert ungleich 254<br />

50 jb TB, next ;Springt <strong>bei</strong> gesetztem TestBit<br />

51 jnb P1.3, PWMgen ;macht noch so lange mit Signalerzeugen<br />

weiter bis <strong>der</strong> Pin 1.3<br />

den High-Zustand erreicht hat<br />

39


52 setb TB ;setzt ein Bit um <strong>bei</strong>m nächsten mal<br />

zu überprüfen ob <strong>der</strong> wert das<br />

letzte mal auch schon 254 war<br />

53 next:<br />

54 clr CR ;Schaltet PCA aus um einzelblitze zu<br />

erzeugen<br />

55 clr P1.3 ;Port 1.3 auf Low um <strong>bei</strong> <strong>der</strong><br />

nächsten flanke zu blitzen<br />

56 jmp loop ;weiter empfangen<br />

57 PWMgen:<br />

58 setb P1.3 ;Setzt Port 1.3 auf High<br />

59 setb CR ;Startet PCA - Timer falls dieser<br />

aus ist<br />

60 clr TB ;löscht Testbit<br />

61 mov TH0,a ;Ladet den ausgesuchten wert aus <strong>der</strong><br />

Tabelle in das High Byte des Timer 0<br />

62 jmp loop ;weitere Bytes empfangen<br />

63 tabelle: ;Werte<br />

64 DB 254,254,254,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15<br />

65 DB 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30<br />

66 DB 31,32,33,34,35,36,37,38,39,40,41,42,43,44,45<br />

67 DB 46,47,48,49,50,51,52,53,54,55,56,57,58,59,60<br />

68 DB 61,62,63,64,65,66,67,68,69,70,71,72,73,74,75<br />

69 DB 76,77,78,79,80,81,82,83,84,85,86,87,88,89,90<br />

70 DB 91,92,93,94,95,96,97,98,99,100,101,102,103,104,105<br />

71 DB 106,107,108,109,110,111,112,113,114,115,116,117,118,119,120<br />

72 DB 121,122,123,124,125,126,127,128,129,130,131,132,133,134,135<br />

73 DB 136,137,138,139,140,141,142,143,144,145,146,147,148,149,150<br />

74 DB 151,152,153,154,155,156,157,158,159,160,161,162,163,164,165<br />

75 DB 166,167,168,169,170,171,172,173,174,175,176,177,178,179,180<br />

76 DB 181,182,183,184,185,186,187,188,189,190,191,192,193,194,195<br />

77 DB 196,197,198,199,200,201,202,203,204,205,206,207,208,209,210<br />

78 DB 211,212,213,214,215,216,217,218,219,220,221,222,223,224,225<br />

79 DB 226,227,228,229,230,231,232,233,234,235,236,237,238,239,240<br />

80 DB 241,242,243,244,245,246,247,248,248,248,255<br />

81 end<br />

40


®<br />

NE555<br />

SA555 - SE555<br />

GENERAL PURPOSE SINGLE BIPOLAR TIMERS<br />

..LOW TURN OFF TIME<br />

MAXIMUM OPERATING FREQUENCY<br />

GREATER THAN 500kHz<br />

.<br />

TIMING FROM MICROSECONDS TO HOURS<br />

.<br />

OPERATES IN BOTH ASTABLE AND<br />

MONOSTABLE MODES<br />

HIGH OUTPUT CURRENT CAN SOURCE OR<br />

SINK 200mA<br />

ADJUSTABLE DUTY CYCLE<br />

.<br />

TTL COMPATIBLE<br />

TEMPERATURE STABILITY OF 0.005%<br />

PER o C<br />

DESCRIPTION<br />

The NE555 monolithic timing circuit is a highly stable<br />

controller capable of producing accurate time delays<br />

or oscillation. In the time delay mode of operation,<br />

the time is precisely controlled by one external resistor<br />

and capacitor. For a stable operation as an oscillator,<br />

the free running frequency and the duty cycle<br />

are both accurately controlled with two external<br />

resistors and one capacitor. The circuit may be triggered<br />

and reset on falling waveforms, and the output<br />

structure can source or sink up to 200mA. The<br />

NE555 is available in plastic and ceramic minidip<br />

package and in a 8-lead micropackage and in metal<br />

can package version.<br />

N<br />

DIP8<br />

(Plastic Package)<br />

ORDER CODES<br />

D<br />

SO8<br />

(Plastic Micropackage)<br />

Part Temperature Package<br />

Number<br />

Range<br />

N D<br />

NE555 0 o C, 70 o C • •<br />

SA555 –40 o C, 105 o C • •<br />

SE555 –55 o C, 125 o C • •<br />

PIN CONNECTIONS (top view)<br />

1<br />

2<br />

8<br />

7<br />

1 - GND<br />

2 - Trigger<br />

3 - Output<br />

4 - Reset<br />

5 - Control voltage<br />

6 - Threshold<br />

3<br />

6<br />

7 - Discharge<br />

8 - VCC<br />

4 5<br />

July 1998<br />

1/10


NE555/SA555/SE555<br />

BLOCK DIAGRAM<br />

V + CC<br />

5kΩ<br />

THRESHOLD<br />

CONTROL VOLTAGE<br />

COMP<br />

R<br />

DISCHARGE<br />

FLIP-FLOP<br />

5kΩ<br />

Q<br />

TRIGGER<br />

COMP<br />

S<br />

INHIBIT/<br />

RESET<br />

OUT<br />

5kΩ<br />

RESET<br />

S<br />

S - 8086<br />

SCHEMATIC DIAGRAM<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

ABSOLUTE MAXIMUM RATINGS<br />

Symbol Parameter Value Unit<br />

V cc Supply Voltage 18 V<br />

T oper Operating Free Air Temperature Range for NE555<br />

for SA555<br />

for SE555<br />

0 to 70<br />

–40 to 105<br />

–55 to 125<br />

T j Junction Temperature 150<br />

T stg Storage Temperature Range –65 to 150<br />

o C<br />

o C<br />

o C<br />

2/10


NE555/SA555/SE555<br />

OPERATING CONDITIONS<br />

Symbol Parameter SE555 NE555 - SA555 Unit<br />

V CC Supply Voltage 4.5 to 18 4.5 to 18 V<br />

V th, V trig, V cl, V reset Maximum Input Voltage V CC V CC V<br />

ELECTRICAL CHARACTERISTICS<br />

Tamb = +25 o C, VCC = +5V to +15V (unless otherwise specified)<br />

Symbol<br />

Parameter<br />

I CC Supply Current (R L ∞) (- note 1)<br />

Low State V CC = +5V<br />

V CC = +15V<br />

High State V CC = 5V<br />

V CL<br />

Vth<br />

Timing Error (monostable)<br />

(RA = 2k to 100kΩ, C = 0.1µF)<br />

Initial Accuracy - (note 2)<br />

Drift with Temperature<br />

Drift with Supply Voltage<br />

Timing Error (astable)<br />

(RA, RB = 1kΩ to 100kΩ, C = 0.1µF,<br />

V CC = +15V)<br />

Initial Accuracy - (note 2)<br />

Drift with Temperature<br />

Drift with Supply Voltage<br />

Control Voltage level<br />

V CC = +15V<br />

VCC = +5V<br />

Threshold Voltage<br />

V CC = +15V<br />

V CC = +5V<br />

SE555<br />

NE555 - SA555<br />

Min. Typ. Max. Min. Typ. Max.<br />

9.6<br />

2.9<br />

9.4<br />

2.7<br />

3 5<br />

10 12<br />

2<br />

0.5<br />

30<br />

0.05<br />

1.5<br />

90<br />

0.15<br />

10<br />

3.33<br />

10<br />

3.33<br />

2<br />

100<br />

0.2<br />

10.4<br />

3.8<br />

10.6<br />

4<br />

9<br />

2.6<br />

8.8<br />

2.4<br />

3 6<br />

10 15<br />

2<br />

1<br />

50<br />

0.1<br />

2.25<br />

150<br />

0.3<br />

10<br />

3.33<br />

10<br />

3.33<br />

3<br />

0.5<br />

11<br />

4<br />

11.2<br />

4.2<br />

Unit<br />

mA<br />

%<br />

ppm/°C<br />

%/V<br />

%<br />

ppm/°C<br />

%/V<br />

I th Threshold Current - (note 3) 0.1 0.25 0.1 0.25 µA<br />

V trig<br />

Trigger Voltage<br />

V CC = +15V<br />

V CC = +5V<br />

4.8<br />

1.45<br />

I trig Trigger Current (V trig = 0V) 0.5 0.9 0.5 2.0 µA<br />

V reset Reset Voltage - (note 4) 0.4 0.7 1 0.4 0.7 1 V<br />

I reset<br />

VOL<br />

VOH<br />

Notes :<br />

Reset Current<br />

Vreset = +0.4V<br />

Vreset = 0V<br />

Low Level Output Voltage<br />

V CC = +15V, I O(sink) = 10mA<br />

I O(sink) = 50mA<br />

IO(sink) = 100mA<br />

I O(sink) = 200mA<br />

V CC = +5V, I O(sink) = 8mA<br />

IO(sink) = 5mA<br />

High Level Output Voltage<br />

V CC = +15V, I O(source) = 200mA<br />

I O(source) = 100mA<br />

V CC = +5V, I O(source) = 100mA<br />

5<br />

1.67<br />

0.1<br />

0.4<br />

0.1<br />

0.4<br />

2<br />

2.5<br />

0.1<br />

0.05<br />

13<br />

3<br />

12.5<br />

13.3<br />

3.3<br />

5.2<br />

1.9<br />

0.4<br />

1<br />

0.15<br />

0.5<br />

2.2<br />

0.25<br />

0.2<br />

4.5<br />

1.1<br />

12.75<br />

2.75<br />

5<br />

1.67<br />

0.1<br />

0.4<br />

0.1<br />

0.4<br />

2<br />

2.5<br />

0.3<br />

0.25<br />

12.5<br />

13.3<br />

3.3<br />

5.6<br />

2.2<br />

0.4<br />

1.5<br />

0.25<br />

0.75<br />

2.5<br />

0.4<br />

0.35<br />

1. Supply current when output is high is typically 1mA less.<br />

2. Tested at V CC = +5V and V CC = +15V.<br />

3. This will determine the maximum value of RA + RB for +15V operation the max total is R = 20MΩ and for 5V operation<br />

the max total R = 3.5MΩ.<br />

V<br />

V<br />

V<br />

mA<br />

V<br />

V<br />

3/10


NE555/SA555/SE555<br />

ELECTRICAL CHARACTERISTICS (continued)<br />

Symbol<br />

I dis(off)<br />

V dis(sat)<br />

tr<br />

t f<br />

Notes :<br />

Parameter<br />

Discharge Pin Leakage Current<br />

(output high) (V dis = 10V)<br />

Discharge pin Saturation Voltage<br />

(output low) - (note 5)<br />

VCC = +15V, Idis = 15mA<br />

VCC = +5V, Idis = 4.5mA<br />

Output Rise Time<br />

Output Fall Time<br />

SE555<br />

NE555 - SA555<br />

Min. Typ. Max. Min. Typ. Max.<br />

Unit<br />

20 100 20 100 nA<br />

t off Turn off Time - (note 6) (V reset = V CC) 0.5 0.5 µs<br />

5. No protection against excessive Pin 7 current is necessary, providing the package dissipation rating will not be exceeded.<br />

6. Time mesaured from a positive going input pulse from 0 to 0.8x VCC into the threshold to the drop from high to low of the<br />

output trigger is tied to treshold.<br />

180<br />

80<br />

100<br />

100<br />

480<br />

200<br />

200<br />

200<br />

180<br />

80<br />

100<br />

100<br />

480<br />

200<br />

300<br />

300<br />

mV<br />

ns<br />

Figure 1 :<br />

Minimum Pulse Width Required for<br />

Trigering<br />

Figure 2 :<br />

Supply Current versus Supply Voltage<br />

Figure 3 : Delay Time versus Temperature Figure 4 : Low Output Voltage versus Output<br />

Sink Current<br />

4/10


NE555/SA555/SE555<br />

Figure 5 :<br />

Low Output Voltage versus Output<br />

Sink Current<br />

Figure 6 :<br />

Low Output Voltage versus Output<br />

Sink Current<br />

Figure 7 :<br />

High Output Voltage Drop versus<br />

Output<br />

Figure 8 :<br />

Delay Time versus Supply Voltage<br />

Figure 9 :<br />

Propagation Delay versus Voltage<br />

Level of Trigger Value<br />

5/10


NE555/SA555/SE555<br />

APPLICATION INFORMATION<br />

MONOSTABLE OPERATION<br />

In the monostable mode, the timer functions as a<br />

one-shot. Referring to figure 10 the external capacitor<br />

is initially held discharged by a transistor inside<br />

the timer.<br />

Figure 10<br />

Figure 11<br />

t = 0.1 ms / div<br />

INPUT = 2.0V/div<br />

OUTPUT VOLTAGE = 5.0V/div<br />

= 5 to 15V<br />

V CC<br />

Reset<br />

4<br />

R1<br />

8<br />

Trigger<br />

2<br />

7<br />

Output<br />

3<br />

NE555<br />

6<br />

C1<br />

Control Voltage<br />

5<br />

0.01µF<br />

CAPACITOR VOLTAGE = 2.0V/div<br />

R1 = 9.1kΩ, C1 = 0.01µF, R = 1kΩ L<br />

1<br />

Figure 12<br />

The circuit triggers on a negative-going input signal<br />

when the level reaches 1/3 Vcc. Once triggered, the<br />

circuit remains in this state until the set time has<br />

elapsed, even if it is triggered again during this interval.<br />

The duration of the output HIGH state is given<br />

by t = 1.1 R 1C 1 and is easily determined by<br />

figure 12.<br />

Notice that since the charge rate and the threshold<br />

level of the comparator are both directly proportional<br />

to supply voltage, the timing interval is independent<br />

of supply. Applying a negative pulse simultaneously<br />

to the reset terminal (pin 4) and the trigger terminal<br />

(pin 2) during the timing cycle discharges the external<br />

capacitor and causes the cycle to start over. The<br />

timing cycle now starts on the positive edge of the<br />

reset pulse. During the time the reset pulse in applied,<br />

the output is driven to its LOW state.<br />

When a negative trigger pulse is applied to pin 2, the<br />

flip-flop is set, releasing the short circuit across the<br />

external capacitor and driving the output HIGH. The<br />

voltage across the capacitor increases exponentially<br />

with the time constant τ = R 1C 1. When the voltage<br />

across the capacitor equals 2/3 V cc, the comparator<br />

resets the flip-flop which then discharge the capacitor<br />

rapidly and drivers the output to its LOW<br />

state.<br />

Figure 11 shows the actual waveforms generated in<br />

this mode of operation.<br />

When Reset is not used, it should be tied high to<br />

avoid any possibly or false triggering.<br />

C<br />

(µF)<br />

10<br />

1.0<br />

0.1<br />

0.01<br />

R1= 1kΩ<br />

10kΩ<br />

100kΩ<br />

1MΩ<br />

10MΩ<br />

0.001<br />

10<br />

µs<br />

100<br />

µs<br />

1.0<br />

ms<br />

10<br />

ms<br />

100<br />

ms<br />

10<br />

s<br />

(t d)<br />

ASTABLE OPERATION<br />

When the circuit is connected as shown in figure 13<br />

(pin 2 and 6 connected) it triggers itself and free runs<br />

as a multivibrator. The external capacitor charges<br />

through R 1 and R 2 and discharges through R 2 only.<br />

Thus the duty cycle may be precisely set by the ratio<br />

of these two resistors.<br />

In the astable mode of operation, C 1 charges and<br />

discharges between 1/3 Vcc and 2/3 Vcc. As in the<br />

triggered mode, the charge and discharge times and<br />

therefore frequency are independent of the supply<br />

voltage.<br />

6/10


NE555/SA555/SE555<br />

Figure 13<br />

Figure 15 : Free Running Frequency versus R1,<br />

R 2 and C 1<br />

V CC = 5 to 15V<br />

Output 3<br />

4 8<br />

7<br />

R1<br />

C<br />

(µF)<br />

10<br />

NE555<br />

R2<br />

1.0<br />

10kΩ<br />

1kΩ<br />

0.01µF<br />

Control<br />

Voltage<br />

5<br />

1<br />

2<br />

6<br />

C1<br />

0.1<br />

0.01<br />

100kΩ<br />

1MΩ<br />

R1 + R2 = 10MΩ<br />

Figure 14 shows actual waveforms generated in this<br />

mode of operation.<br />

The charge time (output HIGH) is given by :<br />

t 1 = 0.693 (R 1 + R 2) C 1<br />

and the discharge time (output LOW) by :<br />

t 2 = 0.693 (R 2) C 1<br />

Thus the total period T is given by :<br />

T = t1 + t2 = 0.693 (R1 + 2R2) C1<br />

The frequency ofoscillation is them :<br />

f = 1 T = 1.44<br />

(R 1 + 2R 2 ) C 1<br />

and may be easily found by figure 15.<br />

The duty cycle is given by :<br />

R 2<br />

D =<br />

R 1 + 2R 2<br />

Figure 14<br />

t = 0.5 ms / div<br />

OUTPUT VOLTAGE = 5.0V/div<br />

0.001<br />

0.1 1 10 100 1k 10k f o(Hz)<br />

PULSE WIDTH MODULATOR<br />

When the timer is connected in the monostable<br />

mode and triggered with a continuous pulse train,<br />

the output pulse width can be modulated by a signal<br />

applied to pin 5. Figure 16 shows the circuit.<br />

Figure 16 : Pulse Width Modulator.<br />

Trigger<br />

Output<br />

2<br />

3<br />

4<br />

NE555<br />

1<br />

8<br />

7<br />

6<br />

5<br />

Modulation<br />

Input<br />

R A<br />

C<br />

V CC<br />

CAPACITOR VOLTAGE = 1.0V/div<br />

R1 = R2 = 4.8kΩ, C1= 0.1µF, R = 1kΩ L<br />

7/10


NE555/SA555/SE555<br />

LINEAR RAMP<br />

When the pullup resistor, R A, in the monostable circuit<br />

is replaced by a constant current source, a linear<br />

ramp is generated. Figure 17 shows a circuit configuration<br />

that will perform this function.<br />

Figure 17.<br />

Trigger<br />

Output<br />

2<br />

3<br />

4<br />

NE555<br />

1<br />

8<br />

7<br />

6<br />

5<br />

RE<br />

2N4250<br />

or equiv.<br />

C<br />

0.01µF<br />

Figure 18 shows waveforms generator by the linear<br />

ramp.<br />

The time interval is given by :<br />

T = (2/3 V CC R E (R 1+ R 2) C<br />

R 1 V CC − V BE (R 1+ R 2)<br />

V BE = 0.6V<br />

Figure 18 : Linear Ramp.<br />

R1<br />

R2<br />

V CC<br />

50% DUTY CYCLE OSCILLATOR<br />

For a 50% duty cycle the resistors R A and R E may<br />

be connected as in figure 19. The time preriod for the<br />

output high is the same as previous,<br />

t 1 = 0.693 R A C.<br />

For the output low it is t2 =<br />

[(R A R B ) ⁄ (R A + R B )] CLn ⎡ R B − 2R A ⎤<br />

⎢ ⎣ 2R B − R ⎥⎦<br />

A<br />

1<br />

Thus the frequency of oscillation is f =<br />

t1 + t 2<br />

Note that this circuit will not oscillate if R B is greater<br />

Figure 19 : 50% Duty Cycle Oscillator.<br />

Out<br />

2<br />

3<br />

4<br />

NE55<br />

1<br />

V CC<br />

8<br />

7<br />

6<br />

5<br />

R B<br />

22kΩ<br />

0.01µF<br />

V CC<br />

R A<br />

51kΩ<br />

C<br />

0.01µF<br />

than 1/2 RA because the junction of RA and RB cannot<br />

bring pin 2 down to 1/3 VCC and trigger the lower<br />

comparator.<br />

ADDITIONAL INFORMATION<br />

Adequate power supply bypassing is necessary to<br />

protect associated circuitry. Minimum recommended<br />

is 0.1µF in parallel with 1µF electrolytic.<br />

VCC = 5V<br />

Time = 20µs/DIV<br />

R 1 = 47kΩ<br />

R 2 = 100kΩ<br />

RE = 2.7kΩ<br />

C = 0.01µF<br />

Top trace : input 3V/DIV<br />

Middle trace : output 5V/DIV<br />

Bottom trace : output 5V/DIV<br />

Bottom trace : capacitor voltage<br />

1V/DIV<br />

8/10


NE555/SA555/SE555<br />

PACKAGE MECHANICAL DATA<br />

8 PINS - PLASTIC DIP<br />

PM-DIP8.EPS<br />

Dimensions<br />

Millimeters<br />

Inches<br />

Min. Typ. Max. Min. Typ. Max.<br />

A 3.32 0.131<br />

a1 0.51 0.020<br />

B 1.15 1.65 0.045 0.065<br />

b 0.356 0.55 0.014 0.022<br />

b1 0.204 0.304 0.008 0.012<br />

D 10.92 0.430<br />

E 7.95 9.75 0.313 0.384<br />

e 2.54 0.100<br />

e3 7.62 0.300<br />

e4 7.62 0.300<br />

F 6.6 0260<br />

i 5.08 0.200<br />

L 3.18 3.81 0.125 0.150<br />

Z 1.52 0.060<br />

DIP8.TBL<br />

9/10


NE555/SA555/SE555<br />

PACKAGE MECHANICAL DATA<br />

8 PINS - PLASTIC MICROPACKAGE (SO)<br />

PM-SO8.EPS<br />

Dimensions<br />

Millimeters<br />

Inches<br />

Min. Typ. Max. Min. Typ. Max.<br />

A 1.75 0.069<br />

a1 0.1 0.25 0.004 0.010<br />

a2 1.65 0.065<br />

a3 0.65 0.85 0.026 0.033<br />

b 0.35 0.48 0.014 0.019<br />

b1 0.19 0.25 0.007 0.010<br />

C 0.25 0.5 0.010 0.020<br />

c1<br />

45 o (typ.)<br />

D 4.8 5.0 0.189 0.197<br />

E 5.8 6.2 0.228 0.244<br />

e 1.27 0.050<br />

e3 3.81 0.150<br />

F 3.8 4.0 0.150 0.157<br />

L 0.4 1.27 0.016 0.050<br />

M 0.6 0.024<br />

S<br />

8 o (max.)<br />

SO8.TBL<br />

Information furnished is believed to be accurate and reliable. However, STMicroelectronics assumes no responsibility for the<br />

consequences of use of such information nor for any infringement of patents or other rights of third parties which may result<br />

from its use. No license is granted by implication or otherwise un<strong>der</strong> any patent or patent rights of STMicroelectronics. Specifications<br />

mentioned in this publication are subject to change without notice. This publication supersedes and replaces all information<br />

previously supplied. STMicroelectronics products are not authorized for use as critical components in life support<br />

devices or systems without express written approval of STMicroelectronics.<br />

© The ST logo is a trademark of STMicroelectronics<br />

© 1998 STMicroelectronics – Printed in Italy – All Rights Reserved<br />

STMicroelectronics GROUP OF COMPANIES<br />

Australia - Brazil - Canada - China - France - Germany - Italy - Japan - Korea - Malaysia - Malta - Mexico - Morocco<br />

The Netherlands - Singapore - Spain - Sweden - Switzerland - Taiwan - Thailand - United Kingdom - U.S.A.<br />

ORDER CODE :<br />

10/10


This datasheet has been download from:<br />

www.datasheetcatalog.com<br />

Datasheets for electronics components.


The ULN2001A is obsolete<br />

and is no longer supplied.<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

500-mA Rated Collector Current<br />

(Single Output)<br />

High-Voltage Outputs . . . 50 V<br />

Output Clamp Diodes<br />

ULN2001A, ULN2002A, ULN2003A, ULN2004A, ULQ2003A, ULQ2004A,<br />

HIGH-VOLTAGE HIGH-CURRENT DARLINGTON<br />

TRANSISTOR ARRAY<br />

SLRS027E – DECEMBER 1976 – REVISED SEPTEMBER 2002<br />

Inputs Compatible With Various Types of<br />

Logic<br />

Relay-Driver Applications<br />

Designed to Be Interchangeable With<br />

Sprague ULN2001A Series<br />

Package Options Include Plastic Small<br />

Outline (D, NS) Packages and Plastic DIP<br />

(N)<br />

description<br />

The ULN2001A, ULN2002A, ULN2003A, ULN2004A, ULQ2003A, and ULQ2004A are high-voltage,<br />

high-current Darlington transistor arrays. Each consists of seven npn Darlington pairs that feature high-voltage<br />

outputs with common-cathode clamp diodes for switching inductive loads. The collector-current rating of a<br />

single Darlington pair is 500 mA. The Darlington pairs can be paralleled for higher current capability.<br />

Applications include relay drivers, hammer drivers, lamp drivers, display drivers (LED and gas discharge), line<br />

drivers, and logic buffers. For 100-V (otherwise interchangeable) versions of the ULN2003A and ULN2004A,<br />

see the SN75468 and SN75469, respectively.<br />

The ULN2001A is a general-purpose array and can be used with TTL and CMOS technologies. The ULN2002A<br />

is designed specifically for use with 14-V to 25-V PMOS devices. Each input of this device has a Zener diode<br />

and resistor in series to control the input current to a safe limit. The ULN2003A and ULQ2003A have a 2.7-kΩ<br />

series base resistor for each Darlington pair for operation directly with TTL or 5-V CMOS devices. The<br />

ULN2004A and ULQ2004A have a 10.5-kΩ series base resistor to allow operation directly from CMOS devices<br />

that use supply voltages of 6 V to 15 V. The required input current of the ULN/ULQ2004A is below that of the<br />

ULN/ULQ2003A, and the required voltage is less than that required by the ULN2002A.<br />

TA<br />

–20°C to 70°C<br />

–40°C to85°C<br />

AVAILABLE OPTIONS<br />

PACKAGES<br />

SMALL OUTLINE<br />

(D, NS)<br />

PLASTIC DIP<br />

(N)<br />

– ULN2002AN<br />

ULN2003AD<br />

ULN2003ANS<br />

ULN2004AD<br />

ULN2004ANS<br />

ULQ2003AD<br />

ULQ2004AD<br />

ULN2003AN<br />

ULN2004AN<br />

ULQ2003AN<br />

ULQ2004AN<br />

The D package is available taped and reeled. Add the suffix R to<br />

device type (e.g., ULN2003ADR). The NS package is only available<br />

taped and reeled.<br />

ULN2001A ...D OR N PACKAGE<br />

ULN2002A ...N PACKAGE<br />

ULN2003A, ULN2004A . . . D, N, OR NS PACKAGE<br />

ULQ2003A, ULQ2004A ...D OR N PACKAGE<br />

(TOP VIEW)<br />

1B<br />

2B<br />

3B<br />

4B<br />

5B<br />

6B<br />

7B<br />

E<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

16<br />

15<br />

14<br />

13<br />

12<br />

11<br />

10<br />

9<br />

1C<br />

2C<br />

3C<br />

4C<br />

5C<br />

6C<br />

7C<br />

COM<br />

Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of<br />

Texas Instruments semiconductor products and disclaimers thereto appears at the end of this data sheet.<br />

PRODUCTION DATA information is current as of publication date.<br />

Products conform to specifications per the terms of Texas Instruments<br />

standard warranty. Production processing does not necessarily include<br />

testing of all parameters.<br />

Copyright © 2002, Texas Instruments Incorporated<br />

POST OFFICE BOX 655303 • DALLAS, TEXAS 75265<br />

1


ULN2001A, ULN2002A, ULN2003A, ULN2004A, ULQ2003A, ULQ2004A,<br />

HIGH-VOLTAGE HIGH-CURRENT DARLINGTON<br />

TRANSISTOR ARRAY<br />

SLRS027E – DECEMBER 1976 – REVISED SEPTEMBER 2002<br />

logic diagram<br />

The ULN2001A is obsolete<br />

and is no longer supplied.<br />

1B<br />

1<br />

9<br />

16<br />

COM<br />

1C<br />

2B<br />

2<br />

15<br />

2C<br />

3B<br />

3<br />

14<br />

3C<br />

4B<br />

4<br />

13<br />

4C<br />

5B<br />

5<br />

12<br />

5C<br />

6B<br />

6<br />

11<br />

6C<br />

7B<br />

7<br />

10<br />

7C<br />

schematics (each Darlington pair)<br />

COM<br />

COM<br />

Input<br />

B<br />

Output<br />

C<br />

Input<br />

B<br />

7 V<br />

10.5 kΩ<br />

Output<br />

C<br />

7.2 kΩ 3 kΩ<br />

E<br />

7.2 kΩ<br />

3 kΩ<br />

E<br />

ULN2001A<br />

ULN2002A<br />

COM<br />

Input<br />

B<br />

RB<br />

Output<br />

C<br />

ULN/ULQ2003A: RB = 2.7 kΩ<br />

ULN/ULQ2004A: RB = 10.5 kΩ<br />

7.2 kΩ 3 kΩ<br />

E<br />

All resistor values shown are nominal.<br />

ULN2003A, ULN2004A, ULQ2003A, ULQ2004A<br />

2 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265


The ULN2001A is obsolete<br />

and is no longer supplied.<br />

ULN2001A, ULN2002A, ULN2003A, ULN2004A, ULQ2003A, ULQ2004A,<br />

HIGH-VOLTAGE HIGH-CURRENT DARLINGTON<br />

TRANSISTOR ARRAY<br />

SLRS027E – DECEMBER 1976 – REVISED SEPTEMBER 2002<br />

absolute maximum ratings at 25°C free-air temperature (unless otherwise noted) †<br />

Collector-emitter voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 V<br />

Clamp diode reverse voltage (see Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 V<br />

Input voltage, V I (see Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 V<br />

Peak collector current (see Figures 14 and 15) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 mA<br />

Output clamp current, I OK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 mA<br />

Total emitter-terminal current . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . –2.5 A<br />

Continuous total power dissipation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . See Dissipation Rating Table<br />

Package thermal impedance, θ JA (see Note 2): D package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73°C/W<br />

N package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67°C/W<br />

NS package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64°C/W<br />

Operating free-air temperature range, T A , ULN200xA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . –20°C to 70°C<br />

ULQ200xA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . –40°C to 85°C<br />

Lead temperature 1,6 mm (1/16 inch) from case for 10 seconds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260°C<br />

Storage temperature range, T stg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . –65°C to 150°C<br />

† Stresses beyond those listed un<strong>der</strong> “absolute maximum ratings” may cause permanent damage to the device. These are stress ratings only, and<br />

functional operation of the device at these or any other conditions beyond those indicated un<strong>der</strong> “recommended operating conditions” is not<br />

implied. Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability.<br />

NOTES: 1. All voltage values are with respect to the emitter/substrate terminal E, unless otherwise noted.<br />

2. The package thermal impedance is calculated in accordance with JESD 51-7.<br />

PACKAGE<br />

DISSIPATION RATING TABLE<br />

TA A = 25°C DERATING FACTOR TA A = 85°C<br />

POWER RATING ABOVE TA = 25°C POWER RATING<br />

D 950 mW 7.6 mW/°C 494 mW<br />

N 1150 mW 9.2 mW/°C 598 mW<br />

electrical characteristics, T A = 25°C (unless otherwise noted)<br />

PARAMETER<br />

TEST<br />

FIGURE<br />

TEST CONDITIONS<br />

ULN2001A<br />

ULN2002A<br />

MIN TYP MAX MIN TYP MAX<br />

VI(on) On-state input voltage 6 VCE = 2 V, IC = 300 mA 13 V<br />

Collector-emitter<br />

VCE(sat)<br />

saturation voltage<br />

II = 250 µA, IC = 100 mA 0.9 1.1 0.9 1.1<br />

5 II = 350 µA, IC = 200 mA 1 1.3 1 1.3 V<br />

II = 500 µA, IC = 350 mA 1.2 1.6 1.2 1.6<br />

VF Clamp forward voltage 8 IF = 350 mA 1.7 2 1.7 2 V<br />

ICEX<br />

Collector cutoff current<br />

VCE = 50 V,<br />

II(off) Off-state input current 3 TA = 70°C<br />

1 VCE = 50 V, II = 0 50 50<br />

UNIT<br />

VCE = 50 V, II = 0 100 100 µA<br />

2 TA = 70°C VI = 6 V 500<br />

IC C = 500 µA,<br />

50 65 50 65 µA<br />

II Input current 4 VI = 17 V 0.82 1.25 mA<br />

IR Clamp reverse current 7<br />

hFE<br />

Static forward-current<br />

transfer ratio<br />

VR = 50 V, TA = 70°C 100 100<br />

VR = 50 V 50 50<br />

5 VCE = 2 V, IC = 350 mA 1000<br />

Ci Input capacitance VI = 0, f = 1 MHz 15 25 15 25 pF<br />

µA<br />

POST OFFICE BOX 655303 • DALLAS, TEXAS 75265<br />

3


ULN2001A, ULN2002A, ULN2003A, ULN2004A, ULQ2003A, ULQ2004A,<br />

HIGH-VOLTAGE HIGH-CURRENT DARLINGTON<br />

TRANSISTOR ARRAY<br />

SLRS027E – DECEMBER 1976 – REVISED SEPTEMBER 2002<br />

The ULN2001A is obsolete<br />

and is no longer supplied.<br />

electrical characteristics, T A = 25°C (unless otherwise noted) (continued)<br />

PARAMETER<br />

TEST<br />

FIGURE<br />

VI(on) On-state input voltage 6 VCE =2V<br />

Collector-emitter<br />

VCE(sat)<br />

saturation voltage<br />

ICEX<br />

Collector cutoff current<br />

TEST CONDITIONS<br />

ULN2003A<br />

ULN2004A<br />

MIN TYP MAX MIN TYP MAX<br />

IC = 125 mA 5<br />

IC = 200 mA 2.4 6<br />

IC = 250 mA 2.7<br />

IC = 275 mA 7<br />

IC = 300 mA 3<br />

IC = 350 mA 8<br />

II = 250 µA, IC = 100 mA 0.9 1.1 0.9 1.1<br />

5 II = 350 µA, IC = 200 mA 1 1.3 1 1.3 V<br />

II = 500 µA, IC = 350 mA 1.2 1.6 1.2 1.6<br />

1 VCE = 50 V, II = 0 50 50<br />

UNIT<br />

VCE = 50 V, II = 0 100 100 µA<br />

2 TA = 70°C VI = 1 V 500<br />

VF Clamp forward voltage 8 IF = 350 mA 1.7 2 1.7 2 V<br />

VCE = 50 V,<br />

II(off) Off-state input current 3 TA = 70°C<br />

IC = 500 µA, ,<br />

VI = 3.85 V 0.93 1.35<br />

50 65 50 65 µA<br />

II Input current 4 VI = 5 V 0.35 0.5 mA<br />

IR Clamp reverse current 7<br />

VI = 12 V 1 1.45<br />

VR = 50 V 50 50<br />

VR = 50 V, TA = 70°C 100 100<br />

Ci Input capacitance VI = 0, f = 1 MHz 15 25 15 25 pF<br />

V<br />

µA<br />

4 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265


The ULN2001A is obsolete<br />

and is no longer supplied.<br />

ULN2001A, ULN2002A, ULN2003A, ULN2004A, ULQ2003A, ULQ2004A,<br />

HIGH-VOLTAGE HIGH-CURRENT DARLINGTON<br />

TRANSISTOR ARRAY<br />

SLRS027E – DECEMBER 1976 – REVISED SEPTEMBER 2002<br />

electrical characteristics over recommended operating conditions (unless otherwise noted)<br />

PARAMETER<br />

TEST<br />

FIGURE<br />

VI(on) On-state input voltage 6 VCE =2V<br />

Collector-emitter<br />

VCE(sat)<br />

saturation voltage<br />

ICEX<br />

Collector cutoff current<br />

TEST CONDITIONS<br />

ULQ2003A<br />

ULQ2004A<br />

MIN TYP MAX MIN TYP MAX<br />

IC = 125 mA 5<br />

IC = 200 mA 2.7 6<br />

IC = 250 mA 2.9<br />

IC = 275 mA 7<br />

IC = 300 mA 3<br />

IC = 350 mA 8<br />

II = 250 µA, IC = 100 mA 0.9 1.2 0.9 1.1<br />

5 II = 350 µA, IC = 200 mA 1 1.4 1 1.3 V<br />

II = 500 µA, IC = 350 mA 1.2 1.7 1.2 1.6<br />

1 VCE = 50 V, II = 0 100 50<br />

2 VCE =50V<br />

UNIT<br />

II = 0 100 µA<br />

VI = 1 V 500<br />

VF Clamp forward voltage 8 IF = 350 mA 1.7 2.2 1.7 2 V<br />

II(off) Off-state input current 3 VCE =50V V, IC = 500 µA 30 65 50 65 µA<br />

VI = 3.85 V 0.93 1.35<br />

II Input current 4 VI = 5 V 0.35 0.5 mA<br />

IR Clamp reverse current 7<br />

VI = 12 V 1 1.45<br />

VR = 50 V, TA = 25°C 100 50<br />

VR = 50 V 100 100<br />

Ci Input capacitance VI = 0, f = 1 MHz 15 25 15 25 pF<br />

V<br />

µA<br />

switching characteristics, T A = 25°C<br />

PARAMETER<br />

TEST CONDITIONS<br />

ULN2001A, ULN2002A,<br />

ULN2003A, ULN2004A UNIT<br />

MIN TYP MAX<br />

tPLH Propagation delay time, low- to high-level output See Figure 9 0.25 1 µs<br />

tPHL Propagation delay time, high- to low-level output See Figure 9 0.25 1 µs<br />

VOH High-level output voltage after switching<br />

VS = 50 V, IO ≈ 300 mA,<br />

VS–20<br />

mV<br />

See Figure 10<br />

switching characteristics over recommended operating conditions (unless otherwise noted)<br />

PARAMETER<br />

TEST CONDITIONS<br />

ULQ2003A, ULQ2004A<br />

MIN TYP MAX<br />

tPLH Propagation delay time, low- to high-level output See Figure 9 1 10 µs<br />

tPHL Propagation delay time, high- to low-level output See Figure 9 1 10 µs<br />

VOH High-level output voltage after switching<br />

VS = 50 V, IO ≈ 300 mA,<br />

VS–500<br />

mV<br />

See Figure 10<br />

UNIT<br />

POST OFFICE BOX 655303 • DALLAS, TEXAS 75265<br />

5


ULN2001A, ULN2002A, ULN2003A, ULN2004A, ULQ2003A, ULQ2004A,<br />

HIGH-VOLTAGE HIGH-CURRENT DARLINGTON<br />

TRANSISTOR ARRAY<br />

SLRS027E – DECEMBER 1976 – REVISED SEPTEMBER 2002<br />

PARAMETER MEASUREMENT INFORMATION<br />

The ULN2001A is obsolete<br />

and is no longer supplied.<br />

Open<br />

VCE<br />

Open<br />

VCE<br />

ICEX<br />

ICEX<br />

Open<br />

VI<br />

Figure 1. I CEX Test Circuit<br />

Figure 2. I CEX Test Circuit<br />

Open<br />

VCE<br />

Open<br />

II(off)<br />

IC<br />

II(on)<br />

VI<br />

Open<br />

Figure 3. I I(off) Test Circuit<br />

Figure 4. I I Test Circuit<br />

Open<br />

hFE =<br />

I C<br />

II<br />

Open<br />

II<br />

VCE<br />

IC<br />

VI(on)<br />

VCE<br />

IC<br />

NOTE: II is fixed for measuring VCE(sat), variable for<br />

measuring hFE.<br />

Figure 5. h FE , V CE(sat) Test Circuit<br />

Figure 6. V I(on) Test Circuit<br />

VR<br />

IR<br />

Open<br />

Open<br />

VF<br />

IF<br />

Figure 7. I R Test Circuit<br />

Figure 8. V F Test Circuit<br />

6 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265


The ULN2001A is obsolete<br />

and is no longer supplied.<br />

ULN2001A, ULN2002A, ULN2003A, ULN2004A, ULQ2003A, ULQ2004A,<br />

HIGH-VOLTAGE HIGH-CURRENT DARLINGTON<br />

TRANSISTOR ARRAY<br />

SLRS027E – DECEMBER 1976 – REVISED SEPTEMBER 2002<br />

PARAMETER MEASUREMENT INFORMATION<br />

Input<br />

50% 50%<br />

tPHL<br />

tPLH<br />

Output<br />

50% 50%<br />

VOLTAGE WAVEFORMS<br />

Figure 9. Propagation Delay-Time Waveforms<br />

VS<br />

Pulse<br />

Generator<br />

(see Note A)<br />

Input<br />

ULN2001A Only<br />

2.7 kΩ<br />

ULN2002A<br />

ULN/ULQ2003A<br />

ULN/ULQ2004A<br />

Open<br />

1N3064<br />

2 mH<br />

200 Ω<br />

Output<br />

CL = 15 pF<br />

(see Note B)<br />

TEST CIRCUIT<br />

Input<br />

≤5 ns<br />

90% 90%<br />

1.5 V 1.5 V<br />

10% 10%<br />

40 µs<br />

≤10 ns<br />

VIH<br />

(see Note C)<br />

0 V<br />

Output<br />

VOLTAGE WAVEFORMS<br />

VOH<br />

VOL<br />

NOTES: A. The pulse generator has the following characteristics: PRR = 12.5 kHz, ZO = 50 Ω.<br />

B. CL includes probe and jig capacitance.<br />

C. For testing the ULN2001A, the ULN2003A, and the ULQ2003A, VIH = 3 V; for the ULN2002A, VIH = 13 V;<br />

for the ULN2004A and the ULQ2004A, VIH = 8 V.<br />

Figure 10. Latch-Up Test Circuit and Voltage Waveforms<br />

POST OFFICE BOX 655303 • DALLAS, TEXAS 75265<br />

7


ULN2001A, ULN2002A, ULN2003A, ULN2004A, ULQ2003A, ULQ2004A,<br />

HIGH-VOLTAGE HIGH-CURRENT DARLINGTON<br />

TRANSISTOR ARRAY<br />

SLRS027E – DECEMBER 1976 – REVISED SEPTEMBER 2002<br />

The ULN2001A is obsolete<br />

and is no longer supplied.<br />

TYPICAL CHARACTERISTICS<br />

COLLECTOR-EMITTER<br />

SATURATION VOLTAGE<br />

vs<br />

COLLECTOR CURRENT<br />

(ONE DARLINGTON)<br />

COLLECTOR-EMITTER<br />

SATURATION VOLTAGE<br />

vs<br />

TOTAL COLLECTOR CURRENT<br />

(TWO DARLINGTONS IN PARALLEL)<br />

VCE(sat) V – Collector-Emitter Saturation Voltage – V<br />

CE(sat)<br />

2.5<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

0<br />

TA = 25°C<br />

II = 250 µA<br />

II = 350 µA<br />

II = 500 µA<br />

100 200 300 400 500 600 700<br />

IC – Collector Current – mA<br />

800<br />

VCE(sat) V – Collector-Emitter Saturation Voltage – V<br />

2.5<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

0<br />

TA = 25°C<br />

100<br />

200<br />

300<br />

400<br />

II = 350 µA<br />

500<br />

II = 250 µA<br />

II = 500 µA<br />

600<br />

700<br />

IC(tot) – Total Collector Current – mA<br />

800<br />

Figure 11<br />

Figure 12<br />

IC<br />

– Collector Current – mA<br />

500<br />

450<br />

400<br />

350<br />

300<br />

250<br />

200<br />

150<br />

100<br />

50<br />

RL = 10 Ω<br />

TA = 25°C<br />

COLLECTOR CURRENT<br />

vs<br />

INPUT CURRENT<br />

VS = 10 V<br />

VS = 8 V<br />

0<br />

0<br />

25 50 75 100 125 150 175<br />

II – Input Current – µA<br />

Figure 13<br />

200<br />

8 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265


The ULN2001A is obsolete<br />

and is no longer supplied.<br />

ULN2001A, ULN2002A, ULN2003A, ULN2004A, ULQ2003A, ULQ2004A,<br />

HIGH-VOLTAGE HIGH-CURRENT DARLINGTON<br />

TRANSISTOR ARRAY<br />

SLRS027E – DECEMBER 1976 – REVISED SEPTEMBER 2002<br />

THERMAL INFORMATION<br />

D PACKAGE<br />

MAXIMUM COLLECTOR CURRENT<br />

vs<br />

DUTY CYCLE<br />

N PACKAGE<br />

MAXIMUM COLLECTOR CURRENT<br />

vs<br />

DUTY CYCLE<br />

600<br />

600<br />

IC<br />

– Maximum Collector Current – mA<br />

500<br />

400<br />

300<br />

200<br />

100<br />

0<br />

0<br />

N = 6<br />

N = 7<br />

N = 5<br />

N = 4<br />

N = 3<br />

N = 2<br />

TA = 70°C<br />

N = Number of Outputs<br />

Conducting Simultaneously<br />

N = 1<br />

10 20 30 40 50 60 70 80 90<br />

Duty Cycle – %<br />

100<br />

IC<br />

– Maximum Collector Current – mA<br />

500<br />

400<br />

300<br />

200<br />

100<br />

0<br />

0<br />

N = 5<br />

N = 6<br />

N = 7<br />

TA = 85°C<br />

N = Number of Outputs<br />

Conducting Simultaneously<br />

10<br />

20<br />

30<br />

40<br />

50<br />

N = 2<br />

60<br />

Duty Cycle – %<br />

70<br />

N = 1<br />

N = 3<br />

N = 4<br />

80<br />

90<br />

100<br />

Figure 14<br />

Figure 15<br />

POST OFFICE BOX 655303 • DALLAS, TEXAS 75265<br />

9


ULN2001A, ULN2002A, ULN2003A, ULN2004A, ULQ2003A, ULQ2004A,<br />

HIGH-VOLTAGE HIGH-CURRENT DARLINGTON<br />

TRANSISTOR ARRAY<br />

SLRS027E – DECEMBER 1976 – REVISED SEPTEMBER 2002<br />

APPLICATION INFORMATION<br />

The ULN2001A is obsolete<br />

and is no longer supplied.<br />

VSS<br />

ULN2002A<br />

V<br />

VCC<br />

ULN2003A<br />

ULQ2003A<br />

V<br />

1<br />

16<br />

1<br />

16<br />

2<br />

15<br />

2<br />

15<br />

3<br />

14<br />

3<br />

14<br />

4<br />

13<br />

4<br />

13<br />

5<br />

12<br />

5<br />

12<br />

6<br />

11<br />

6<br />

11<br />

P-MOS<br />

Output<br />

7<br />

8<br />

10<br />

9<br />

7<br />

8<br />

10<br />

9<br />

TTL<br />

Output<br />

Lamp<br />

Test<br />

Figure 16. P-MOS to Load<br />

Figure 17. TTL to Load<br />

VDD<br />

ULN2004A<br />

ULQ2004A<br />

V<br />

VCC<br />

ULN2003A<br />

ULQ2003A<br />

V<br />

1<br />

16<br />

1<br />

16<br />

2<br />

15<br />

2<br />

15<br />

3<br />

14<br />

RP<br />

3<br />

14<br />

4<br />

13<br />

4<br />

13<br />

5<br />

12<br />

5<br />

12<br />

6<br />

11<br />

6<br />

11<br />

7<br />

10<br />

7<br />

10<br />

CMOS<br />

Output<br />

8<br />

9<br />

TTL<br />

Output<br />

8<br />

9<br />

Figure 18. Buffer for Higher Current Loads<br />

Figure 19. Use of Pullup Resistors<br />

to Increase Drive Current<br />

10 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265


IMPORTANT NOTICE<br />

Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications,<br />

enhancements, improvements, and other changes to its products and services at any time and to discontinue<br />

any product or service without notice. Customers should obtain the latest relevant information before placing<br />

or<strong>der</strong>s and should verify that such information is current and complete. All products are sold subject to TI’s terms<br />

and conditions of sale supplied at the time of or<strong>der</strong> acknowledgment.<br />

TI warrants performance of its hardware products to the specifications applicable at the time of sale in<br />

accordance with TI’s standard warranty. Testing and other quality control techniques are used to the extent TI<br />

deems necessary to support this warranty. Except where mandated by government requirements, testing of all<br />

parameters of each product is not necessarily performed.<br />

TI assumes no liability for applications assistance or customer product design. Customers are responsible for<br />

their products and applications using TI components. To minimize the risks associated with customer products<br />

and applications, customers should provide adequate design and operating safeguards.<br />

TI does not warrant or represent that any license, either express or implied, is granted un<strong>der</strong> any TI patent right,<br />

copyright, mask work right, or other TI intellectual property right relating to any combination, machine, or process<br />

in which TI products or services are used. Information published by TI regarding third–party products or services<br />

does not constitute a license from TI to use such products or services or a warranty or endorsement thereof.<br />

Use of such information may require a license from a third party un<strong>der</strong> the patents or other intellectual property<br />

of the third party, or a license from TI un<strong>der</strong> the patents or other intellectual property of TI.<br />

Reproduction of information in TI data books or data sheets is permissible only if reproduction is without<br />

alteration and is accompanied by all associated warranties, conditions, limitations, and notices. Reproduction<br />

of this information with alteration is an unfair and deceptive business practice. TI is not responsible or liable for<br />

such altered documentation.<br />

Resale of TI products or services with statements different from or beyond the parameters stated by TI for that<br />

product or service voids all express and any implied warranties for the associated TI product or service and<br />

is an unfair and deceptive business practice. TI is not responsible or liable for any such statements.<br />

Mailing Address:<br />

Texas Instruments<br />

Post Office Box 655303<br />

Dallas, Texas 75265<br />

Copyright © 2002, Texas Instruments Incorporated


DS75176B/DS75176BT<br />

Multipoint RS-485/RS-422 Transceivers<br />

General Description<br />

The DS75176B is a high speed differential TRI-STATE ®<br />

bus/line transceiver designed to meet the requirements of<br />

EIA standard RS485 with extended common mode range<br />

(+12V to −7V), for multipoint data transmission. In addition, it<br />

is compatible with RS-422.<br />

The driver and receiver outputs feature TRI-STATE capability,<br />

for the driver outputs over the entire common mode<br />

range of +12V to −7V. Bus contention or fault situations that<br />

cause excessive power dissipation within the device are<br />

handled by a thermal shutdown circuit, which forces the<br />

driver outputs into the high impedance state.<br />

DC specifications are guaranteed over the 0 to 70˚C temperature<br />

and 4.75V to 5.25V supply voltage range.<br />

Connection and Logic Diagram<br />

July 2004<br />

Features<br />

n Meets EIA standard RS485 for multipoint bus<br />

transmission and is compatible with RS-422.<br />

n Small Outline (SO) Package option available for<br />

minimum board space.<br />

n 22 ns driver propagation delays.<br />

n Single +5V supply.<br />

n −7V to +12V bus common mode range permits ±7V<br />

ground difference between devices on the bus.<br />

n Thermal shutdown protection.<br />

n High impedance to bus with driver in TRI-STATE or with<br />

power off, over the entire common mode range allows<br />

the unused devices on the bus to be powered down.<br />

n Pin out compatible with DS3695/A and SN75176A/B.<br />

n Combined impedance of a driver output and receiver<br />

input is less than one RS485 unit load, allowing up to 32<br />

transceivers on the bus.<br />

n 70 mV typical receiver hysteresis.<br />

DS75176B/DS75176BT Multipoint RS-485/RS-422 Transceivers<br />

00875901<br />

Top View<br />

Or<strong>der</strong> Number DS75176BN, DS75176BTN, DS75176BM or DS75176BTM<br />

See NS Package Number N08E or M08A<br />

TRI-STATE ® is a registered trademark of National Semiconductor Corp.<br />

© 2004 National Semiconductor Corporation DS008759 www.national.com


DS75176B/DS75176BT<br />

Absolute Maximum Ratings (Note 1)<br />

If Military/Aerospace specified devices are required,<br />

please contact the National Semiconductor Sales Office/<br />

Distributors for availability and specifications.<br />

Supply Voltage, V CC<br />

7V<br />

Control Input Voltages<br />

7V<br />

Driver Input Voltage<br />

7V<br />

Driver Output Voltages<br />

+15V/ −10V<br />

Receiver Input Voltages (DS75176B) +15V/ −10V<br />

Receiver Output Voltage 5.5V<br />

Continuous Power Dissipation @<br />

25˚C<br />

for M Package 675 mW (Note 5)<br />

for N Package 900 mW (Note 4)<br />

Storage Temperature Range<br />

−65˚C to +150˚C<br />

Lead Temperature<br />

(Sol<strong>der</strong>ing, 4 seconds)<br />

260˚C<br />

Electrical Characteristics (Notes 2, 3)<br />

0˚C ≤ T A ≤ 70˚C, 4.75V < V CC<br />

< 5.25V unless otherwise specified<br />

ESD Rating (HBM)<br />

Recommended Operating<br />

Conditions<br />

500V<br />

Min Max Units<br />

Supply Voltage, V CC 4.75 5.25 V<br />

Voltage at Any Bus Terminal −7 +12 V<br />

(Separate or Common Mode)<br />

Operating Free Air Temperature T A<br />

DS75176B 0 +70 ˚C<br />

DS75176BT −40 +85 ˚C<br />

Differential Input Voltage,<br />

VID (Note 6) −12 +12 V<br />

Symbol Parameter Conditions Min Typ Max Units<br />

V OD1 Differential Driver Output I O =0 5 V<br />

Voltage (Unloaded)<br />

V OD2 Differential Driver Output (Figure 1) R=50Ω; (RS-422) (Note 7) 2 V<br />

Voltage (with Load) R = 27Ω; (RS-485) 1.5 V<br />

∆V OD<br />

Change in Magnitude of Driver<br />

Differential Output Voltage For 0.2 V<br />

Complementary Output States<br />

V OC Driver Common Mode Output (Figure 1) R=27Ω 3.0 V<br />

Voltage<br />

∆|V OC | Change in Magnitude of Driver<br />

Common Mode Output Voltage 0.2 V<br />

For Complementary Output<br />

States<br />

V IH Input High Voltage 2 V<br />

V IL Input Low Voltage DI, DE, 0.8<br />

V CL Input Clamp Voltage RE , E I IN = −18 mA −1.5<br />

I IL Input Low Current V IL = 0.4V −200 µA<br />

I IH Input High Current V IH = 2.4V 20 µA<br />

I IN Input DO/RI, DO/RI V CC = 0V or 5.25V V IN = 12V +1.0 mA<br />

Current DE = 0V V IN = −7V −0.8 mA<br />

V TH Differential Input Threshold −7V ≤ V CM ≤ + 12V −0.2 +0.2 V<br />

Voltage for Receiver<br />

∆V TH Receiver Input Hysteresis V CM =0V 70 mV<br />

V OH Receiver Output High Voltage I OH = −400 µA 2.7 V<br />

V OL Output Low Voltage RO I OL = 16 mA (Note 7) 0.5 V<br />

I OZR OFF-State (High Impedance) V CC = Max ±20 µA<br />

Output Current at Receiver 0.4V ≤ V O ≤ 2.4V<br />

R IN Receiver Input Resistance −7V ≤ V CM ≤ +12V 12 kΩ<br />

I CC Supply Current No Load Driver Outputs Enabled 55 mA<br />

(Note 7) Driver Outputs Disabled 35 mA<br />

www.national.com 2


Electrical Characteristics (Notes 2, 3)<br />

(Continued)<br />

0˚C ≤ T A ≤ 70˚C, 4.75V < V CC<br />

< 5.25V unless otherwise specified<br />

Symbol Parameter Conditions Min Typ Max Units<br />

I OSD Driver Short-Circuit V O = −7V (Note 7) −250 mA<br />

Output Current V O = +12V (Note 7) +250 mA<br />

I OSR Receiver Short-Circuit V O = 0V −15 −85 mA<br />

Output Current<br />

Note 1: “Absolute Maximum Ratings” are those beyond which the safety of the device cannot be guaranteed. They are not meant to imply that the device should<br />

be operated at these limits. The tables of “Electrical Characteristics” provide conditions for actual device operation.<br />

Note 2: All currents into device pins are positive; all currents out of device pins are negative. All voltages are referenced to device ground unless otherwise specified.<br />

Note 3: All typicals are given for V CC = 5V and T A = 25˚C.<br />

Note 4: Derate linearly at 5.56 mW/˚C to 650 mW at 70˚C.<br />

Note 5: Derate linearly @ 6.11 mW/˚C to 400 mW at 70˚C.<br />

Note 6: Differential - Input/Output bus voltage is measured at the noninverting terminal A with respect to the inverting terminal B.<br />

DS75176B/DS75176BT<br />

Note 7: All worst case parameters for which note 7 is applied, must be increased by 10% for DS75176BT. The other parameters remain valid for −40˚C < T A<br />

< +85˚C.<br />

Switching Characteristics<br />

V CC = 5.0V, T A = 25˚C<br />

Symbol Parameter Conditions Min Typ Max Units<br />

t PLH Driver Input to Output R LDIFF =60Ω 12 22 ns<br />

t PHL Driver Input to Output C L1 =C L2 = 100 pF 17 22 ns<br />

t r Driver Rise Time R LDIFF =60Ω 18 ns<br />

t f Driver Fall Time C L1 =C L2 = 100 pF 18 ns<br />

(Figure 3 and Figure 5)<br />

t ZH Driver Enable to Output High C L = 100 pF (Figure 4 and Figure 6) S1<br />

29 100 ns<br />

Open<br />

t ZL Driver Enable to Output Low C L = 100 pF (Figure 4 and Figure 6) S2<br />

31 60 ns<br />

Open<br />

t LZ Driver Disable Time from Low C L =15pF(Figure 4 and Figure 6) S2<br />

13 30 ns<br />

Open<br />

t HZ Driver Disable Time from High C L =15pF(Figure 4 and Figure 6) S1<br />

19 200 ns<br />

Open<br />

t PLH Receiver Input to Output C L =15pF(Figure 2 and Figure 7) 30 37 ns<br />

t PHL Receiver Input to Output S1 and S2 Closed 32 37 ns<br />

t ZL Receiver Enable to Output Low C L =15pF(Figure 2 and Figure 8) S2<br />

15 20 ns<br />

Open<br />

t ZH Receiver Enable to Output High C L =15pF(Figure 2 and Figure 8) S1<br />

11 20 ns<br />

Open<br />

t LZ Receiver Disable from Low C L =15pF(Figure 2 and Figure 8) S2<br />

28 32 ns<br />

Open<br />

t HZ Receiver Disable from High C L =15pF(Figure 2 and Figure 8) S1<br />

Open<br />

13 35 ns<br />

3<br />

www.national.com


DS75176B/DS75176BT<br />

AC Test Circuits<br />

FIGURE 3.<br />

00875904<br />

00875902<br />

FIGURE 1.<br />

00875905<br />

Note: Unless otherwise specified the switches are closed.<br />

FIGURE 4.<br />

00875903<br />

Note: S1 and S2 of load circuit are closed except as otherwise mentioned.<br />

FIGURE 2.<br />

Switching Time Waveforms<br />

00875906<br />

FIGURE 5. Driver Propagation Delays and Transition Times<br />

www.national.com 4


Switching Time Waveforms (Continued)<br />

DS75176B/DS75176BT<br />

00875907<br />

FIGURE 6. Driver Enable and Disable Times<br />

Note: Differential input voltage may may be realized by grounding RI and pulsing RI between +2.5V and −2.5V<br />

00875908<br />

FIGURE 7. Receiver Propagation Delays<br />

00875909<br />

FIGURE 8. Receiver Enable and Disable Times<br />

5<br />

www.national.com


DS75176B/DS75176BT<br />

Function Tables<br />

DS75176B Transmitting<br />

Inputs Line Outputs<br />

RE DE DI Condition DO DO<br />

X 1 1 No Fault 0 1<br />

X 1 0 No Fault 1 0<br />

X 0 X X Z Z<br />

X 1 X Fault Z Z<br />

DS75176B Receiving<br />

Inputs<br />

Outputs<br />

RE DE RI-RI RO<br />

0 0 ≥ +0.2V 1<br />

0 0 ≤ −0.2V 0<br />

0 0 Inputs Open** 1<br />

1 0 X Z<br />

X — Don’t care condition<br />

Z — High impedance state<br />

Fault — Improper line conditons causing excessive power dissipation in the driver, such as shorts or bus contention<br />

situations<br />

**This is a fail safe condition<br />

Typical Application<br />

00875911<br />

www.national.com 6


Physical Dimensions inches (millimeters)<br />

unless otherwise noted<br />

DS75176B/DS75176BT<br />

Lit. # 103669<br />

Molded Dual-In-Line Package (N)<br />

Or<strong>der</strong> Number DS75176BN or DS75176BTN<br />

NS Package Number N08E<br />

7<br />

www.national.com


DS75176B/DS75176BT Multipoint RS-485/RS-422 Transceivers<br />

Notes<br />

LIFE SUPPORT POLICY<br />

NATIONAL’S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT<br />

DEVICES OR SYSTEMS WITHOUT THE EXPRESS WRITTEN APPROVAL OF THE PRESIDENT AND GENERAL<br />

COUNSEL OF NATIONAL SEMICONDUCTOR CORPORATION. As used herein:<br />

1. Life support devices or systems are devices or<br />

systems which, (a) are intended for surgical implant<br />

into the body, or (b) support or sustain life, and<br />

whose failure to perform when properly used in<br />

accordance with instructions for use provided in the<br />

labeling, can be reasonably expected to result in a<br />

significant injury to the user.<br />

2. A critical component is any component of a life<br />

support device or system whose failure to perform<br />

can be reasonably expected to cause the failure of<br />

the life support device or system, or to affect its<br />

safety or effectiveness.<br />

BANNED SUBSTANCE COMPLIANCE<br />

National Semiconductor certifies that the products and packing materials meet the provisions of the Customer Products<br />

Stewardship Specification (CSP-9-111C2) and the Banned Substances and Materials of Interest Specification<br />

(CSP-9-111S2) and contain no ‘‘Banned Substances’’ as defined in CSP-9-111S2.<br />

National Semiconductor<br />

Americas Customer<br />

Support Center<br />

Email: new.feedback@nsc.com<br />

Tel: 1-800-272-9959<br />

www.national.com<br />

National Semiconductor<br />

Europe Customer Support Center<br />

Fax: +49 (0) 180-530 85 86<br />

Email: europe.support@nsc.com<br />

Deutsch Tel: +49 (0) 69 9508 6208<br />

English Tel: +44 (0) 870 24 0 2171<br />

Français Tel: +33 (0) 1 41 91 8790<br />

National Semiconductor<br />

Asia Pacific Customer<br />

Support Center<br />

Email: ap.support@nsc.com<br />

National Semiconductor<br />

Japan Customer Support Center<br />

Fax: 81-3-5639-7507<br />

Email: jpn.feedback@nsc.com<br />

Tel: 81-3-5639-7560<br />

National does not assume any responsibility for use of any circuitry described, no circuit patent licenses are implied and National reserves the right at any time without notice to change said circuitry and specifications.


This datasheet has been download from:<br />

www.datasheetcatalog.com<br />

Datasheets for electronics components.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!