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
HI Seit wann braucht eine serielle Schnittstelle Vorwiderstände? Das ist ein aktives Display. MfG Spess
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
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
Wenn man das multiplext, dann kann man über (pseudo) pwm den (durchschnitts) strom so weit senken, dass alles überlebt....
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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.