PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LEDs in I²C- und SPI-Leitungen



CowZ
02.06.2006, 18:39
Hi,

ich habe folgende Frage:
Ich würde gerne folgendes "Gerät" haben:
Es soll sich um eine Reihe von LEDs handeln, die leuchten, sobald eine Datenleitung Daten leitet... Und zwar geht es mir um I²C und SPI Leitungen. Ist dies möglich, bzw. sinnvoll?

Es soll natürlich weder die Kommunikation stören, noch so schnell gehen, dass man nichts sieht.. (praktisch wäre also auch etwas, das 10ms o.ä. leuchten bleibt)

Wenn es dafür keine "einfache" Schaltung gibt, kann ich das auch mit einem µC machen, oder stört das den Datentransfer, wenn ich die Leitungen auf einen Input am µC lege?

Gruß, CowZ

PicNick
02.06.2006, 18:49
Wenn du eine OP als monoflop schaltest und von der I2C/SPI Leitung triggern läßt, geht das bestimmt. Vielleicht sicherheitshalber ein weiterer OP als Trennung, glaub ich aber gar nicht

HannoHupmann
02.06.2006, 18:56
Ich hab gerade ne ähnliche Schaltung am bauen, ich hab mir über i²c nen weiteren Chip, welcher eingangsignal von 6 Tastern bekommt. Jedesmal wenn einer gedrückt wird leuchtet ein LED dabei. Das nur grob

Entscheident ist denke ich, du kannst heute für fast jede Anwendung einen chip kaufen der dir das auf i²c umbaut. Nur weis ich leider nicht welchen Chip man bei deinem Problem verwendet.

mfg HannoHupmann

CowZ
02.06.2006, 19:00
@PicNic: Ich habe leider noch keine Ahnung von Operationsverstärkern, habe noch nie mit ihnen gearbeitet... Kannst du das vielleicht ein bisschen näher ausführen? :)

@HannoHupmann: Ich möchte mir nichts "auf i²c umbauen"... Ich möchte mir nur anzeigen lassen, ob Daten auf den Leitungen "laufen" oder nicht :)

Gruß, CowZ

ogni42
02.06.2006, 19:20
Na, dann nimm einen einfachen NPN (z.B. BC337) mit Vorwiderstand an der Basis von ca. 10k und LED mit passendem Vorwiderstand gegen 5V in den Kollektorpfad.

CowZ
02.06.2006, 19:47
Danke, das klingt gut :)

Und das stört das I²C / SPI nicht? Wenn nicht, wäre diese Lösung natürlich extrem trivial -.- :)

edit: gibt es auch einen passenden SMD Transistor? Oder kann ich da jeden NPN-Transistor nehmen? (Ich möchte bei Reichelt bestellen) Bspw. der "BC 850C SMD". Irgendwie sehe ich keine Unterschiede zwischen den ganzen Transistoren und habe auch keine "Lust" mich durch tausende Datenblätter zu lesen. Ich weiß ja nicht mal, worauf ich achten muss...

Gruß, CowZ

Schokohoernl
02.06.2006, 20:22
bei den transen für deine anwendung isses recht unkritisch, da 1. eine lED nur ca 20mA zieht und 2. die busgeschwindigkeit von ca. 100KHz kein problem für transen darstellen sollte. der verstärkungsfaktor is auch recht egal, da bei einem 10k widerstand schon ein faktor von 40 ausreicht um ne LED anzusteuern.... die meisten haben so um die 100....
also isses recht wurschd ;-)

MfG

Schoko

CowZ
02.06.2006, 20:24
Ok, vielen Dank nochmal :)

Schokohoernl
02.06.2006, 20:40
ach so: damit du in zukunft auch weisst, auf was du bei transistoren grob achten musst:

1. Die maximale stromstärke: muss eben für den verwendungszweck ausreichend sein
2. die geschwindigkeit: wie schnell kann der transistor schalten? wird in Hertz bzw. MHz angegeben... quch hier muss das für deinen verwendungszweck ausreichend sein
3. die verstärkung (sog. Hfe-faktor): gibt an, das wie viel fache des stroms zwischen Basis und emitter zwischen collektor und emitter geschaltet wird. beispiel: Hfe = 100 , basis-emitter strom = 1mA ergibt einen collektor-emitter strom von 100mA
auch hier: anpassung an den verwendungszweck.

wenn der tranistor mehr kann is gut, wenn nich, dann muss man einen anderen nehmen.

MfG

Schoko

P.S.: in wieweit der transistor dein I²C beeinträchtigt weiss ich nicht. hängt auch davon ab, wie groß deine pull-up widerstände sind, denn den 10K widerstand zur basis der transe kannste wie einen pull-down widerstand sehen

SprinterSB
02.06.2006, 20:57
Bei I2C ist zu bedenken, daß die Leitung im inaktiven Zustand auf High liegt (durch PullUps). Somit würde sich eher eine PNP eigenen als ein NPN und die Diode vom Collector via R nach GND.

High-efficiency Dioden leuchten auch noch mit einem Vorwiderstand von 30kOhm recht hell, die könntest sogar ohne Transistor reinhängen...
Die Zeiten sind zwar recht kurz, aber vom Auge noch gut wahrnehmbar.

CowZ
02.06.2006, 22:19
Also die Dioden einfach mit nem Vorwiderstand von 30kOhm direkt an die Leitungen hängen, so dass sie leuchten, wenn die Leitung auf Low ist? Also die Leitung quasi als GND nehmen?

Und wie sieht es mit SPI-Leitungen aus? Die sind doch Active-Low, oder? Also LED einfach andersrum, an GND anschließen?

Gruß, Lasse

SprinterSB
02.06.2006, 22:52
Ja, das sollte gehen. Für einen Transistor würdest du wohl auch einen Basis-Vorwiderstand in der Größenordnung wählen...dabei ist die Durchbruchspannung von Transis deutlich kleiner als die Vorwärsspannung einer LED (es fliesst also weniger Strom bei der LED wenn der R gleich ist)

Schokohoernl
02.06.2006, 23:11
LED's die mit 0,1mA noch recht gut leichten? WO GIBTS DAS? *habenwill*
haste da nen shop der sowas anbietet??

MfG

Schoko

SprinterSB
02.06.2006, 23:30
Etwa bei Reichelt oder dem güldenen C. Schau einfach mal unter "ultra bright" oder "super bright", "high efficiency", "super high efficiency". Nicht ganz billig, kosten schon so 1-3 Euronen. Und vergiss "low current", die ziehen zu viel. Die Helligkeiten sind angegeben, wobei die meistens bei 20-30mA sind. Leuchten aber wie gesagt mit deutlich kleinerem Strom.

Bei den Ultra-Teilen darauf achten, daß sie teilweise auch in Gegenrichtung leiten (ohne zu leuchten).

shaun
02.06.2006, 23:36
Wat'n Gefrickel ;) Eine Treiberstufe darf es schon sein, das Leuchtverhalten einer LED bei 0,1mA und weniger ist sicher nicht spezifiziert, und im zeitlichen Mittel wird's noch weniger. Ein einzelnes Bit beommst man da sicher nicht mit, ein Monoflop muss schon her. Und SPI ist nicht zwingend low-aktiv, sowohl der Ruhepegel als auch die Flanke, bei der Daten übernommen werden, sind variabel.

kalledom
03.06.2006, 10:13
Hallo,
ich würde den 4098 (2 retriggerbare Monovibratoren) verwenden, R/C für 10...100ms auslegen und die LED über einen Vorwiderstand direkt am Ausgang anschließen. Der 4098 reagiert auf steigende und / oder fallende Flanken. Es sind zwei Stück in einem Baustein.
Der 4098 ist ein CMOS-Baustein mit sehr hochohmigen Eingängen und somit direkt anschließbar.
Keine Eingänge offen lassen !

CowZ
05.06.2006, 15:29
Hi,

das mit dem 4098 klingt gut... Nur habe ich keine Ahnung, wie ich den anschließen muss und aus den Datenblätern werd ich nicht schlau...

Könnt ihr mir da helfen?

Gruß cowZ

repi64
05.06.2006, 15:55
Hi,
bei ELV gibt es einen I²C-Bus-Tester als Bausatz für 25Euro.
Wenn dies zu teuer ist, so lohnt sich aber sicher der Blick in die Bau- Bedienungsanleitung, welche downloadbar ist.

http://www.elv-downloads.de/service/manuals/35439_PC-Tester/PC-Tester_KM.pdf

CowZ
07.06.2006, 13:38
Hi,

also 25€ sind mir zuviel und das Schaltbild verstehe ich nicht... Bin leider noch nicht so bewandelt im Elektronikbereich ;)

Ansich brauche ich ja nur ne Schaltung, bei dem der 4098 bei steigender(oder fallender?) Flanke triggert und 10/100ms ne LED leuchten lässt... Aber wie gesagt, finde kein Beispiel für den 4098...

Gruß, CowZ

kalledom
07.06.2006, 13:55
Hallo,
dann schau Dir diesen (http://www.strippenstrolch.de/forum/board_entry.php?id=4733) Schaltplan (fast am Ende) mal an. Du mußt nur R und C auf Deine Zeit vergrößern. Auch das nachfolgende 'Edit' unbedingt lesen.
Du brauchst natürlich nur eine Stufe, das IC hat aber zwei drin.

CowZ
07.06.2006, 17:09
Beim IIC sind die Leitungen ja active-low, mir würde es also reichen, wenn das Monoflop bei ner Flanke nach unten triggert.

Das kann ich doch bestimmt über die Beschaltung von +T und -T ändern... Kann mir jemand die Funktionsweise erklären (also wenn ich wo was anlege, was dann passiert)? Ich verstehe sowas auch gerne, um beim nächsten Mal nicht wieder fragen zu müssen ;)

Und was für ne R/C Kombination brauch ich für welche Zeit, kann ich das irgendwie Berechnen?

Gruß, CowZ

kalledom
07.06.2006, 23:21
Am besten ist es, wenn Du das Datenblatt vom HEF 4093 lädst, damit Du die Daten und die Wahrheitstabelle hast.
Eine steigende Flanke (von Low nach High) kommt an T+ und Plus an T-.
Eine fallende Flanke (von High nach Low) kommt an T- und Plus an T+.
Reset an Plus.
Die Zeit rechne ich über den Daumen: t in sek = R in MOhm mal C in µF.
Und bei CMOS nicht vergessen: keine offenen Eingänge ! Direkt oder per Widerstand an Plus oder GND ! Auch oder gerade die unbenutzten !

CowZ
08.06.2006, 15:29
Hi,
ok,

ich habe es jetzt einfach mit dem Inverter gemacht, dann kann ich die gleiche Schaltung auf für SPI nutzen...

als Zeit habe ich 10ms gewählt, also R = 100kOhm und C = 100nF.

Kannst du den Schaltplan nochmal durchgucken? (Vorallem, ob die LED so richtig is...)

Danke schön :)
Gruß, CowZ

kalledom
08.06.2006, 17:25
Welcher Schaltplan soll denn durchgeguckt werden ?

CowZ
08.06.2006, 17:41
Lol, mist... Attachment vergessen, sry...

hier isser:

kalledom
08.06.2006, 23:03
Wenn Du noch kannst, verwende den 40106 als Inverter, die haben Schmitt-Trigger-Eingänge. Oder 4093, NAND-Gatter mit Schmitt-Trigger-Eing. wobei beide Eingänge zusammen gelegt werden.
Den R1=200 Ohm würde ich mit 470 Ohm ansetzen, damit der Ausgang nur mit ca. 5...7mA belastet wird.
Als Ausgang nutzt Du den Q-, was bedeutet, daß die LED im Ruhezustand immer an ist und bei einer Flanke aus geht. Wenn die LED ganz kurz aus geht, siehst Du das nicht; wenn eine LED jedoch kurz an geht, ist das gut zu sehen.
An Pin 15 ist ein C nach Pin 14 und vom Pin 14 noch ein R nach Plus; das ist bei Dir falsch.
Vergiß nicht, alle freien Eingänge (evtl. über Widerstände) auf GND oder Plus zu legen. Auch von den freien Invertern !

CowZ
09.06.2006, 16:18
Ok, ich habe jetzt den 40106 eingebaut, weil mir nich klar war, wie du das mit den NAND-Gittern meintest *g*

R1 hab ich verändert und Q benutzt, ok hatte mich da verdacht ^^

Beim C hab ich mich vertan, ist jetzt verbessert :)

Wg. der LED, ist die jetzt richtig beschaltet? (mit GND?)

Gruß, CowZ

kalledom
09.06.2006, 16:27
R1 hab ich verändert und Q benutzt, ok hatte mich da verdacht ^^
neeee, hast'e nich, schließ sie wieder so an, wie im oberen Plan, vom Q- über R1 nach Plus. Es ist besser, wenn der geschaltete GND genommen wird, und der ist nach jeder Flanke am Q- = Low = GND.
Sollte es Probleme geben, dann nimm noch zwei Inverter dazu, also insgesamt 3 hintereinander.
Der Rest sieht gut aus. Dann mal ran ans löten ! (Denk an die unbenutzten Eingänge aller Bausteine !!!)

CowZ
09.06.2006, 16:34
Also war das an Q- doch richtig? Und die leuchtet dann auch kurz, wenn ein Signal kommt?

"Sollte es Probleme geben"... Dann isses sowieso zu spät, weil ich die Platine gleich ätze und die ICs als SMD rauflöte... aber ok, wenns dann nicht klappt, weiß ich warum ;)

"Dann mal ran ans löten !" Wird wohl leider noch ein bisschen dauern, bin momentan noch am Platinen entwickeln (siehe HP) und am Geldsuchen ;)

Gruß CowZ
PS: Ist es egal, wie ich die Eingänge beschalte? Und Widerstände (10k?) ja, oder nein?

edit: PPS: Gleiche Schaltung kann ich doch auch für SPI nutzen, oder? (Triggert ja bei High=>Low und Low=>High)

kalledom
09.06.2006, 17:01
Dann mach doch gleich 3 Inverter hintereinander, oder 5; das ist auf keinen Fall schlechter.
Du kannst die Eingänge mit 10k PullUp/PullDown beschalten; dann können die sogar ohne Änderung benutzt werden.
An diese Schaltung kannst Du alles anschließen, was den Pegel ändert; es ist sofort an der LED erkennbar. Du wolltest ja jede Aktivität sofort sehen.
PS: Setz doch einen freien Inverter ganz nach vorne an den Eingang, dann ist das mit Schmitt-Trigger und dann auch für ganz langsame Flanken. Das wollte ich Dir eigentlich schon sagen, deitdem ich den 40106 erwähnt hatte.

CowZ
09.06.2006, 17:55
Dann mach doch gleich 3 Inverter hintereinander, oder 5; das ist auf keinen Fall schlechter.
Was bringen denn 3 oder 5 Inverter? Ansich kommt hinten ja genau das gleiche raus, wie bei einem, oder?



PS: Setz doch einen freien Inverter ganz nach vorne an den Eingang, dann ist das mit Schmitt-Trigger und dann auch für ganz langsame Flanken. Das wollte ich Dir eigentlich schon sagen, deitdem ich den 40106 erwähnt hatte.
Einfach einen Inverter vorne direkt an das (zu betrachtende) Signal? Warum eigentlich einen Inverter und nicht nen normalen Schmitt-trigger (oder gibt's die nur in anderen ICs integriert?)

Gruß CowZ
PS: Find's super, dass du mir trotz meiner vielen Fragen so gut hilfst :) Danke :) =D>

kalledom
09.06.2006, 18:47
Was bringen denn 3 oder 5 Inverter? Ansich kommt hinten ja genau das gleiche raus, wie bei einem, oder? Ein zeitverzögertes Ausgangssignal ! Gatter haben Durchlaufzeiten von einigen Nano-Sekunden.
Es muß hier eine ungerade Anzahl Gatter sein, weil ein invertiertes Signal benötigt wird.
Eine steigende Flanke am T+ wird nur dann 'angenommen', wenn T- High ist.
Eine fallende Flanke am T- wird nur dann 'angenommen', wenn T+ Low ist.
Bei nur einem Gatter ist nicht so ganz klar, wie schnell der Pegel am anderen Eingang 'weggezogen' wird und es u.U. zu Problemen kommt.
Deshalb sind mir 3 x 25ns Verzögerung lieber, als nur 25ns.
Ob am Eingang ein Inverter ist oder nicht, spielt doch keine Rolle; die Schaltung reagiert auf beide Flanken gleich.
Ein Inverter bleibt beim 40106 auf jeden Fall übrig; möchtest Du für einen einzigen Nicht-Inverter ein weiteres IC auf der Platine haben ?

PS: Nimm die goldene Mitte: 3 Inverter als Zeitverzögerung hintereinander, die restlichen 3 komplett hintereinander an den Eingang; dann sind vom 40106 alle Eingänge an definierten Pegeln :-)

PSPS: Es liegen auch immer 3 Inverter so schön nebeneinander um den Ausgang des einen mit dem Eingang des nächsten zu verbinden.

STOP !!! Ich habe noch einen Denkfehler !!!

Ich poste Dir heute Nacht einen Schaltplan, der funktioniert. Nur mit Invertern zwischen T+ und T- funktioniert das nicht richtig.

CowZ
09.06.2006, 20:49
Ok, danke für die Erklärungen :)

Also 3 Inverter an den Eingang (also ans Signal) und 3 Inverter zu -TR...

Ok :)

edit: am Signaleingang brauch ich doch theoretisch nur einen Inverter, da ist die Zeitverzögerung doch egal, oder? Die "übriggebliebenen" Inverter vom IC kann ich ja noch bei anderen Signalen verwenden :)

edit: Oh, hatte dein "Stop" nicht gesehen... Hier mein bisheriger Schaltplan:
http://elektronik.cowz.de/mama/schematic/outlocal_2.png

Gruß, CowZ

kalledom
09.06.2006, 23:17
So, jetzt ist alles etwas anders, aber dafür durchsichtiger.
Ich kann Dir leider nicht sagen, was der 4098 macht, wenn Du T+ und T- miteinader verbindest und dort einen Takt anlegst; einen recht langsamen, damit Du auch bei jeder Flanke sehen kannst, ob er triggert. Ausgerechnet den 4098 habe ich natürlich keinen da, um es selbst auszuprobieren.
Aber hier die versprochene funktionierende Schaltung, etwas anders, wie geplant.
Ich erinnere an die Bedingungen:
Getriggert wird bei steigenden Flanken am T+ nur, wenn T- High ist.
Getriggert wird bei fallenden Flanken am T- nur, wenn T+ Low ist.
Diese Bedingungen sind mit folgender Schaltung ganz sicher gegeben.
Wenn es auch zuerst nicht richtig war, aus Fehlern lernt man und das mit den Gatterlaufzeiten, etc. hat Dich sicher etwas 'schlauer' gemacht.

CowZ
10.06.2006, 11:39
Hi,

Erstmal schade, dass das alles falsch war... Aber lieber sowas frühzeitig als zu spät merken :)

Trotzdem hab ich noch eine Frage...
Wenn wenn ich die Beschaltungen von IC1A und IC1B umdrehe, kann ich dann nicht IC2A ganz sparen? (Also IC1A so schalten, dass er bei steigender Flanke triggert, und IC1B triggert bei fallender)
(Aber ok, dann habe ich IC2A "übrig" und müsste den dann doch irgendwie beschalten...)

edit: obiger Schaltplan registriert ja steigende und fallende Flanken. Das ist für SPI sicher sinnvoll, aber bei IIC kann man doch einen Monoflop sparen, oder? (IC1B)

Gruß, CowZ

kalledom
10.06.2006, 13:19
Was Du letztendlich machen möchtest, darfst Du ganz alleine entscheiden :-)
Diese Schaltung reagiert auf steigende und fallende Flanken. Wenn Du nur ein Flanke 'auswerten' möchtest, entfällt der 4093 komplett und die LED wird an Q- angeschlossen.
Je nachdem, auf welche Flanke Du dann triggern möchtest, kannst Du die Beschaltung von A (fallend) oder B (steigend) nehmen. Ob Du Teil A oder B des Bausteins nimmst, kannst Du ebenfalls aussuchen.
Freie Eingänge beachten !

CowZ
10.06.2006, 16:20
So.. bin jetzt deinen Schaltplan nochmal durchgegangen...

Wenn ich am Signal eine fallende Flanke haben, dann habe ich hinter IC2A eine steigende. IC1A triggert nicht.
Hinter IC2D habe ich eine fallende Flanke. IC2B triggert nicht.

Also irgendwas stimmt hier nicht ;) (entweder deine Schaltung oder meine Gedanken ;))

Gruß, CowZ

Und: Muss man das wirklich so kompliziert mit Monoflop etc. machen? Kann man das Blinken der LED nicht auch ohne erkennen? (irgendwie isses mir zuviel Aufwand für nen kleinen Effekt ;) Aber wenn's nicht anders geht, oder so einfach besser ist, ist es auch ok :))

kalledom
10.06.2006, 19:02
Wenn ich am Signal eine fallende Flanke haben, dann habe ich hinter IC2A eine steigende. IC1A triggert nicht. Da hast Du allerdings Recht. Der IC2D muß raus (überbrücken). Die triggern im Moment beide gleichzeitig; Sch...ade. Irgendwie war es gestern Nacht wohl schon sehr spät.
Warum sind wir eigentlich drauf gekommen, auf fallende und steigende Flanken zu triggern ?
Es reicht doch aus, wenn nur eine Flanke triggert und die LED für wenige Milli-Sekunden leuchtet. Die Flanken der Signale sind doch wohl im Mikro-Sekunden-Abstand und da ist es doch vollkommen Wurscht, welche Flanke triggert, oder sehe ich das falsch.
Also nimm den 4098 A ODER B und schließ ihn für fallende ODER steigende Flanke an, ohne den 4093. Dann ist der Aufwand auch kleiner.

CowZ
10.06.2006, 19:22
Hi,

ja... warum eigentlich beide Flanken? *gg* Ja, ok, mit nur einem Monoflop isses auch ein angenehmerer Schaltungsaufwand :)

Danke nochmal vielmals für die Schaltung (auch für die kompliziertere, habe doch mal wieder einiges gelernt :))

edit: Laut Datenblatt darf der 4098 an den Ausgängen nur mit 1mA belastet werden, sehe ich das richtig? Dann müsste ich ja noch ne (Transistor-)Verstärkerschaltung ran basteln :)

Gruß, CowZ

kalledom
10.06.2006, 21:47
Bei 470 Ohm hast Du 5V(Versorgung) - 2V(LED) = 3V / 470 Ohm = 6,3 mA.
In 'meinem' Datenblatt des 4098 von Texas Instrúment ist ein Diagramm, bei dem ich bei einer Versorgungs-Spannung von 10V einen Strom von 15mA und bei 5V noch 5mA ablesen kann (Typical Output Low (Sink) Current Iol).

CowZ
10.06.2006, 22:35
Mhh.. in meinem Datenblatt (SGS Thomson), steht bei 15V 6,8mA und bei 5V 1mA. Ich lese das nicht in nem Diagramm ab, sondern habe es als Wert in einer Tabelle.

Ich richte mich dann lieber nach den Daten, da ich das Datenblatt von Reichelt habe und auch dort bestellen werde. Außerdem: sicher ist sicher :)

Gruß, CowZ

kalledom
10.06.2006, 23:17
Außer für Low-Current-LED's mit 2 mA haben meine Schaltungen auch immer Transistoren, Darlington's oder FET's mit Basis- / Gate-Vorwiderstand zum Schalten von Strömen > 5mA.

CowZ
10.06.2006, 23:31
Jo, ok :)

Jetzt ist alles im Schaltplan und teilweise schon layoutet :) Jetzt noch mit Eagle3D rumschlagen, dann gibt's n erstes Bild ;)

Gruß, CowZ