Forum: Mikrocontroller und Digitale Elektronik LEDs ohne Vorwiderstand am ATmega?


von Karl F. (kafido)


Lesenswert?

Hallo Leute,

ich bin grad über dieses kleine Display von Sparkfun gestolpert:
http://www.sparkfun.com/products/9766
Das selbe Ding wird hier auch bei Watterott verkauft.

Was mich aber total stutzig macht ist, dass die lt. Schematics völlig 
ohne Vorwiderstände direkt an den Portpins des ATmega328 hängen:
http://www.sparkfun.com/datasheets/Components/LED/7-Segment/SPI_to_4x7SD-v22.pdf

Das nackte 7-Segment-Display wird von Sparkfun auch verkauft und lt. 
Datenblatt hat das Ding auch keine internen Widerstände ...
http://www.sparkfun.com/datasheets/Components/LED/7-Segment/YSD-439AR6B-35.pdf

Hab ich irgendwo den Schuss nicht gehört und die Zukunft verpasst oder 
wie geht das? Das stellt irgendwie grad meine Weltordnung auf den Kopf.
Oder hat der ATmega irgendwie ne interne Strombegrenzung an den Pins?
Im Datenblatt zum ATmega find ich jedenfalls keinen Hinweis darauf.

Normalerweise würde ich bei diesem Schaltungsdesign sagen,
das geht nicht! Dabei geht entweder LED oder CPU kaputt ...
... aber da die davon sicher schon mehr als eins verkauft
haben wird's wohl irgendwie funktionieren ...

Wäre nett, wenn mir jemand das erklären könnte ...

Gruß
- Karl

von spess53 (Gast)


Lesenswert?

HI

Seit wann braucht eine serielle Schnittstelle Vorwiderstände? Das ist 
ein aktives Display.

MfG Spess

von Karl F. (kafido)


Lesenswert?

spess53 schrieb:
> HI
>
> Seit wann braucht eine serielle Schnittstelle Vorwiderstände? Das ist
> ein aktives Display.

Schau doch bitte mal richtig rein.
Hab ja Links zu Schaltplan und alles mit angehängt.

Es geht um den Aufbau des Displays selbst.
Das ganze serielle Display besteht aus einem ATmega und einer 4-fach 
7-Segmentanzeige. Mehr ist eif der Platine nicht drauf. Wie geht das?

- Karl

von spess53 (Gast)


Lesenswert?

Hi

Ich lese dort etwas über 'Selectable brightness'. Scheint also PWM im 
Spiel zu sein. Muss wohl wieder so eine Lehrmeinung, wie das 
Parallelschalten von LEDs (millionenfach bei LCD-Displays praktiziert), 
revidiert werden,

MfG Spess

von Max (Gast)


Lesenswert?

Wenn man das multiplext, dann kann man über (pseudo) pwm den 
(durchschnitts) strom so weit senken, dass alles überlebt....

von Karl F. (kafido)


Lesenswert?

ja, ja, (Software-PWM) ist da schon im Spiel ...
... der verwendete Source-Code ist ja auch veröffentlicht,
da sieht man das schön:
1
// Main loop: update display
2
while(1) {
3
  // Display numbers
4
  display(data0, 1);
5
  delay_us(DIGIT_ON_TIME);
6
  display(data1, 2);
7
  delay_us(DIGIT_ON_TIME);
8
  display(data2, 3);
9
  delay_us(DIGIT_ON_TIME);
10
  display(data3, 4);
11
  delay_us(DIGIT_ON_TIME);
12
  display(0, 5);
13
  delay_us(DIGIT_ON_TIME);
14
  display(0, 6);
15
  delay_us(DIGIT_ON_TIME);
16
  clearDisplay();
17
  delay_us(brightDelay*BRIGHT_FACTOR);
18
}

aber trotz PWM muß doch der Strom begrenzt werden !?!
... denn auch 10% von unendlich sind unendlich ...

Hier verläßt sich wohl jemand darauf, dass der µC in der Praxis wohl 
doch etwas weniger als unendlich viel Strom liefern wird ...

seufz

- Karl

von Ulrich (Gast)


Lesenswert?

Der Strom an den IO Pins ist schon begrenzt. Je nach Spannung sind das 
so 5 - 50 mA. Die Ausgänge haben auch einen deutlichen 
Ausgangswiderstand.
Bei nur 3,3 V sollte sich der Strom noch in Grenzen halten bei 5 V 
dürfte der Strom aber schon etwas zu groß werden. Vor allem sind bei dem 
Display auch nur 30 mA für 10% Tastverhältnis angegeben, also eher 
wenig.

von Peter D. (peda)


Lesenswert?

Karl F. schrieb:
> Was mich aber total stutzig macht ist, dass die lt. Schematics völlig
> ohne Vorwiderstände direkt an den Portpins des ATmega328 hängen:

Jeder kann eben im Internet was veröffentlichen, es muß nicht korrekt 
sein.

Der AVR wird außerhalb seiner Grenzwerte betrieben. Daher werden die 
Digits auch unterschiedlich hell leuchten ('1' hell, '8' dunkel).

Der erfahrene Entwickler nimmt Treibertransistoren für die Digits und 
Widerstände für die Segmente.

Und außerdem nimmt er einen Timerinterrupt zum Multiplexen, sonst 
flackert es, wenn neue Daten empfangen werden.


Peter

von Karl F. (kafido)


Lesenswert?

Peter Dannegger schrieb:
> Karl F. schrieb:
>> Was mich aber total stutzig macht ist, dass die lt. Schematics völlig
>> ohne Vorwiderstände direkt an den Portpins des ATmega328 hängen:
>
> Jeder kann eben im Internet was veröffentlichen, es muß nicht korrekt sein.

Da hast Du wohl Recht.
Bis vor ein paar Stunden dachte ich allerdings, dass die Jungs von 
Sparkfun wissen, was sie da tun - aber mit diesem Design (Hard- und 
Software) haben sie sich bei mir eine Menge Minuspunkte eingefangen ...
Mich wundert nur, dass die Dinger funktionieren - eigentlich müssten sie 
doch reihenweise ausfallen ...

> Der erfahrene Entwickler nimmt Treibertransistoren für die Digits und
> Widerstände für die Segmente.

Ich weiß nicht, ob ich mich als erfahrenen Entwickler bezeichnen würde, 
aber genau so würde ich das machen ... deswegen ja auch die Frage/dieser 
Thread.
Ich hatte gehofft, dass der ATmega irgendwelche Strombegrenzungen hat 
von denen ich evtl. nur nichts wusste ...

Immerhin hatten wir ja sogar hier in diesem Thread - der explizit auf 
das potentielle Problem hinweist - einen Poster der der Meinung war, 
dass PWM reicht ...

> Und außerdem nimmt er einen Timerinterrupt zum Multiplexen, sonst
> flackert es, wenn neue Daten empfangen werden.

Das ist auch klar - aber in diesem Fall wohl nebensächlich. Die paar 
Bytes die es braucht um auf dem Display eine neue Anzeige zu erreichen 
fallen wohl nicht auf. Und da sich der Inhalt der Anzeige ohnehin 
ändert, fällt ein evtl. Flackern vielleicht nicht mal auf ...

Naja, danke für die Klärung - auch wenn ich mir eine andere Antwort 
erhofft hätte.

Gruß
- Karl

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.