Forum: Mikrocontroller und Digitale Elektronik ULN2803 an AVR: Pullup nötig?


von Markus Oberschaetzl (Gast)


Lesenswert?

hi leute,

ich möchte einen ULN2803 Treiberbaustein an den AVR AT90S2313
anschalten, da ich einige LEDs ansteuern will die mehr als die 20mA
ziehen. Der Baustein bietet sich meiner Meinung auch deshalb an, da er
8 Treiber besitzt, andere weniger (brauche auch genau 8 Stück).

Ich brauche dazu sicher Pullup-Widerstände oder, um die Datenleitungen
zw. AVR und ULN gegen +5V zu ziehen, oder?


Wollte sicherheitshalber nachfragen, da  ich in Sachen "Bussen und
so" ein Neuling bin.

Besten Dank schon mal,

viele Grüße Markus.

von crazy horse (Gast)


Lesenswert?

brauchst du nicht.

von Ben (Gast)


Lesenswert?

Warum nimmst Du nicht LowCurrent-LEDs die brauchen nur 2mA.
Ferner kann jeder Port 40mA sourcen und 200mA sinken.
Siehe Datenblatt "Electrical Characteristics"

von Thomas (Gast)


Lesenswert?

Wann ist denn überhaupt ein Pullup nötig? So allgemein gefragt!

von Markus Kaufmann (Gast)


Lesenswert?

@Ben:
Woher nimmst Du diese Werte?

Ich lese aus dem Datenblatt des 2313 eigentlich, daß jeder Pin 20mA
(absolutes Maximum: 40mA) sinken und 3mA sourcen kann. Alle I/O-Pins
zusammen dürfen nicht mehr als 200mA sinken.

Markus

von Ratber (Gast)


Lesenswert?

@Thomas

Ich versuch mal ne einfache Antwort (Is nicht meine stärke.)

Pullupwiderstände (Oder auch Pulldown.Es gibt beide Varianten aber P-Up
ist häufiger vertreten) braucht man gewöhnlich wenn ein Ausgang nur
einen Transistor hat der den Ausgang gegen Masse zieht.

Das heißt das bei Leitendem Transistor der Ausgang gegen masse gezogen
wird und eine Saubere Elektrische "0" bildet.

Bei  gesperrtem Transistor liegt der ausgang dann aber "quasi" in der
Luft und bildet dann keinen Definierten Pegel.
Er ist dann also "Hochohmig"

Der Widerstand zur Versorgungsspannung sorgt dafür das in diesem Falle
das Potential gegen die Versorgungsspannug gezogen wird.

Er wirkt also wie eine Rückholfeder bei einem Relais die die Mechanik
immer sicher in Grundposition bringt wenn der Magnet nicht aktiv ist.
Dabei darf die Feder natürlich nicht stärker sein als der Magnet.

Das gleiche gilt für den Pullupwiderstand.
Ers sollte für Stabile verhältnisse sorgen.
Ist er zu kleine dann fließt nur ein unnötig hoher Strom der im
Widerstand in Wärme umgesetzt wird.

von Thomas (Gast)


Lesenswert?

Wie hoch sollte der Widerstand sein?

reichen 4700Ohm.

Wenn ich einen Pullupwiderstand jetzt auf eine Leitung lege, der sagen
wir mal zwischen uC und einem anderen Digitalen Baustein liegt, wie
kann ich dann noch digital 0 (0V) senden, wenn doch der Pullup ständig
das andere Bauteil auf logisch eins(5V) hält???

von Ratber (Gast)


Lesenswert?

Der Transistor ist im durchgeschaltetem Zustand viel niederohmiger als
der Widerstand und kann so den Pegel runterziehen.

Im Beispiel mit dem Relais ist der Elektromagnet stärker als die
Rückholfeder.

Wie groß der Widerstand sein soll darüber kann man vortrefflich
streiten.

Angesichts des möglichst niedrigen Stromverbrauchs sollte er so klein
wie nötig und so groß wie möglich sein plus einer Sicherheitsreserve.

Mit deinen 4.7KOhm biste schon ganz gut dabei.

Je nach schaltung kann man den Bereich irgendwo zwischen 1-10K Ohm
ansetzen.

Probiers erstmal mit den 4.7k das wären dann bei einer 0 ca 1mA an
Strom.

von crazy horse (Gast)


Lesenswert?

kommt auf den MC an, beim AVR ist definitiv kein Pullup nötig, da die
Ports als Ausgang totem-pole-Stufen haben, dementsprechend auch bei
H-Signal Strom liefern.
Anders sieht es beim 8051 aus, dort sind die Ausgänge nur als
open-collector/drain mit relativ hochohmigen internem pull-up
ausgeführt. Das reicht dann nicht, um an externe Bauteile bei H-Pegel
Strom zu liefern.

von TOM (Gast)


Lesenswert?

@all,

habe diesen etwas verstaubten Thread gefunden und hätte nun noch einige
Fragen.
Ich habe gerade ein Board gebaut das ein Evaluierungsboard mit der
Hardware verbinden soll.
Das Evaluierungsboard hat einen 80C517A als uC.
Da ich einige LED anseuern will und ausserdem noch ein Funksignal
abfrage habe ich als Treiberbausteine den ULN2803 verwendet.
Das Funksignal lese ich über Port 1 ein P1.0 u. 1.1 und zusätzlich ein
DCF-77 Sig an P1.3 und 1.5.
Ich habe jeweils einen ULN2803 an den Ports 1,4 und 5.
Jeder Portpin ist einzel mit einem 4,7kOhm Pullup Widerstand an Vcc
gezogen.
Verbind ich nun nur Port 1 mit der Hardware, kann ich die Signale ohne
Probleme auslesen etc.Habe hier auch schon Langzeitmessungen gemacht
ohne Probleme.
Verbinde ich nun Port 4+5 des uC mit den Pullup Widerstanden und der
Eingänge der ULN2803 kann ich fast keine Signale der Sensoren über Port
1.0+1.1 nehr erkennen.
Sind meine Pullups zu gross?
Gibt es hierzu Richtwerte?

Danke!!!!!  :-)

Thomas

von Vladimir (Gast)


Lesenswert?

Für ULN2803 brauchst du keine pullup Widerstande, und nicht vergessen uC 
Pins als Ausgang configurieren!

von Jörn P. (jonnyp)


Lesenswert?

Der Controller gibt entweder Hi- oder Lowpegel aus, genau das, was der 
ULN2803 will. Du braucht keine Pullups.
Zu pullups hat Ratgeber schon einen Roman geschrieben den ich recht 
passend finde.
Pullups / pulldowns werden nur dann gebraucht wenn ein Pegel fehlt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.