Hallo, Habe jetzt das erste mal eine 5-Stellige LED 7-Segmentanzeige über mein ATMEGA128 angesteuert. Leider ist die Anzeige eindeutig zu dunkel. Komme ich da nicht drum rum einen Treiber zwischen Port und Anzeige zu schalten? Leider habe ich kein Datenblatt von der Anzeige aber bei 10mA DC leuchten sie kräftig auf. Da ich ja nun pulse (100us pro Digit) und 5 Stück versorgen muß bleiben nur noch 1/5 also 20% der Leuchtkraft. Wie man es nun von LED´s her kennt kann ich im Pulsbetrieb auch höheren Strom fahren aber was sagt der uc dazu? Das Datenblatt dazu habe ich auch schon etliche male durchgelesen aber nix gefunden. Kann mir auch nicht vorstellen das ich die Ports mit mehr als 20mA Normal belasten kann. Also bleibt doch nur der Griff zur externen Elektronik oder habe ich da was übersehen? Gruß bis0uhr
guck mal bei den "electrical characteristics" hinten im datenblatt. da steht was über die pin-belastung.
die atmegas können 20 mA pro port, aber alle zusammen dürfen 200 mA nicht überschreiten, also kleineren widerstand rein und es sollte ordentlich leuchten
@ 0Uhr: Lass die einzelnen Stellen mal etwas länger leuchten. 100µsec ist da was kurz, jeweils 1 msec eingeschaltet lassen, bevor auf die nächste Stelle weitergeschaltet wird. Damit wird es schon merklich heller. Gruss Jadeclaw.
> die atmegas können 20 mA pro port, aber alle zusammen dürfen 200 mA > nicht überschreiten, Das kann man pauschal nicht sagen. Wenn sich z.B. der Reset mit einem Port einen Pin teilt, ist dieser in der Regel weniger belastbar. Die pauschal 200 mA gesamt gelten meistens nur für die kleineren AVRs. Bei den größeren ist es meist komplizierter. So steht dann im Datenblatt des Atmega128: 1] The sum of all IOL, for all ports, should not exceed 400 mA. 2] The sum of all IOL, for ports A0 - A7, G2, C3 - C7 should not exceed 100 mA. 3] The sum of all IOL, for ports C0 - C2, G0 - G1, D0 - D7, XTAL2 should not exceed 100 mA. 4] The sum of all IOL, for ports B0 - B7, G3 - G4, E0 - E7 should not exceed 100 mA. 5] The sum of all IOL, for ports F0 - F7, should not exceed 100 mA. und: 1] The sum of all IOH, for all ports, should not exceed 400 mA. 2] The sum of all IOH, for ports A0 - A7, G2, C3 - C7 should not exceed 100 mA. 3] The sum of all IOH, for ports C0 - C2, G0 - G1, D0 - D7, XTAL2 should not exceed 100 mA. 4] The sum of all IOH, for ports B0 - B7, G3 - G4, E0 - E7 should not exceed 100 mA. 5] The sum of all IOH, for ports F0 - F7, should not exceed 100 mA.
Hallo und Danke für die schnellen Antworten. @ Emperor_L0ser: Einen kleineren Widerstand rein machen? Gut der ist jetzt genau auf 10mA dimensioniert also könnte ich bis max 14mA gehen damit ich die Gesamtbelastung von 100mA nicht übersteige (Bei mir sind sie Segmente A0-A6 IOH benutzt) nach der Tabelle von Rolf. Aber ob das mehr bringen soll? Wird sich kaum bemerkbar machen. @ Jadeclaw: Die Idee die Segmente länger aufleuchten lassen 1ms statt 0,1ms. Ich werde es heute Abend mal probieren aber vorstellen kann ich mir auch nicht das es mehr Gewinn bringt. Aber Versuch macht klug. Gruß bis0uhr
Hallo, ich bin ein ganz schneller :-) Habe es doch noch schnell ausprobiert und den Digit 1ms spendiert. Das Resultat ist aber ernüchternd. Keine sichtbare Änderung. Also nach nochmaliger Überlegung geht ohne mehr Strom nix und da ich nicht mehr zur Verfügung stellen kann war es das. Im Prinzip habe ich ja jetzt eine PWM :-) Mich wundert nur das noch niemand im Forum diese Problem hatte. Vielleicht sollte ich auch effektivere Anzeigen nehmen und nicht solche alten Dinger von der Pollin "Wundertüte" lol Gruß bis0uhr
Zur Not nimm doch Ausgangstreiber á la ULN2803, die können 500mA pro Zweig. Für Deine Anzeige reicht das dicke. Hast Du eigentlich jetzt in den gemeinsamen Anoden (oder Kathoden, je nach Modell) der Anzeigen Transistoren drin? Weil 7*20mA kommen dort zu tragen und das schafft kein PortPin alleine.
Ja habe Transistoren an der gemeinsamen Kathode dran. Ausgangstreiber wollte ich zwar vermeiden aber beim ULN2803 hält sich das noch in Grenzen. Werde ich so machen.
Guck auch mal, ob die Transistoren an den Kathoden in der Sättigung sind, wenn Du sie durchsteuern läßt, damit sie auch voll leiten und keine Leistung verloren geht.
An das hatte ich schon nicht mehr gadacht :-) Also ich habe 5Volt Bertiebsspannung und die Transistoren PNP (Emitter auf GND und Basis über 1,2 KOhm an PortPin Kollektor an Kathode) daraus ergibt sich ein Basisstrom von ca. 3,5mA. Die Transistoren haben einen hohen Verstärkungsfaktor von ca. 1000 somit sollten sie voll durchsteuern.
Hi Bis Uhr, also den ATMEGA kenne ich jetzt nicht im Detail, aber den maximalen Strom pro Port dürfte der wie die meisten Prozessoren nur im SINK-Betrieb schaffen, d.h. wenn die Ports auf LOW sind. Übrigens meinst Du hoffentlich NPN-Transistoren für die Kathoden? Ich kenne das eigentlich nur mit Common Andode-LED. Die einzelnen Segmente gehen auf die Ports, die gegen Masse schalten und die Anoden werden über PNP-Transistoren gegen Plus geschaltet. Das funktioniert tadellos. Gruß Stefan
10mA sind zu wenig, du kannst (mußt) die Leds ruhig für 1ms mit 100mA ansteuern, das sind dann grob gesagt 1mA/s.
3,5mA Basis-Strom reichen völlig. Sicher meintest Du _npn_-Transistoren.
@StefanK: Das war mal. Die ersten Serien wie der AT90S1200 waren so, alles spätere wie die ATTiny und ATMega sind da absolut symmetrisch, d.h. 20mA geht in beiden Richtungen. Für 100mA Impulsleistung sind aber externe Treiber notwendig. Gruss Jadeclaw.
@Jadeclaw Dinosaur, danke, habe inzwischen auch einen Blick ins Datenblatt geworfen...interessant, interessant. Gru? Stefan
Ups mein Fehler natürlich habe ich NPN-Transistoren weiß auch nicht wie ich auf PNP kam. @Keks: 100mA klingt gut so war auch mein Plan aber dann nur mit externen Treiber wie z.B. den angesprochenen ULN2803. So nun stelle ich mir schon vor das dann alles funktioniert, dann könnte man auch schon an das Dimmen denken. Dazu brauche ich dann nur die Digits über PWM pulsen oder gibt es eine bessere Lösung. Die Teile von Maxim sind mir aber zu teuer.
Das Problem beim Dimmen ist, daß die Dimmfrequenz (also das PWM) zum einen synchron zur Umlauffrequenz der Digits sein muß und zum anderen muß diese noch um ein Vielfaches schneller sein. Sonst kommt es zu unschönem Flimmern oder noch häßlicheren Laufeffekten. Dabei kommt Dir aber die maximale Schaltfrequenz der Kathodentransistoren und auch des ULNs in die Quere, so daß Du Geistersegmente durch Verwischungseffekte sehen wirst. Du wirst einen Kompromiß zwischen Funktionalität und Tastgeschwindigkeit für die Digits wählen müssen, sonst bekommst Du Augenkrebs.
Ich habe das mit dem Dimmen anders gemacht: Daten für die Stelle ins Ausgangsregister, Stelle eingeschaltet, eine Verzögerungsschleife ablaufen lassen (dabei ggf. anderes erledigt), Stelle ausgeschaltet, eine zweite Verzögerungsschleife ablaufen lassen, ... nächste Displaystelle ... Das Zeitverhältnis zwischen Hellschleife und Dunkelschleife ergibt dann den Helligkeitseindruck. Wichtig ist nur, dass das Display mindestens 80 mal pro Sekunde komplett durchlaufen wird, sonst flimmert es. Den PWM, respektive den dazugehörigen Portpin kann man dann für Sinnvolleres verwenden. Gruss Jadeclaw.
Ja das klingt doch gut und gibt keinen Augenkrebs :-) Schaltzustände pro Digit: 100 200 300 400 500 600 700 800 900 1000 uS ---------------------------------------- L H H H H H H H H H 10us aus 90us an = 90% L L H H H H H H H H 20us aus 80us an = 80% L L L H H H H H H H 30us aus 70us an = 70% L L L L H H H H H H 40us aus 60us an = 60% L L L L L H H H H H 50us aus 50us an = 50% L L L L L L H H H H 60us aus 40us an = 40% L L L L L L L H H H 70us aus 30us an = 30% L L L L L L L L H H 80us aus 20us an = 20% L L L L L L L L L H 90us aus 10us an = 10% L L L L L L L L L L aus :-) Da ich vorher die Anzeige mit 100us laufen lies und es funktioniert hat sollte es so gehen. @Travel: Also der Transistor ist schon schneller als das menschliche Auge lol und der ULN2803 hat eine Schaltzeit von 1 us Turn-on Delay Time und 1 us Turn-off Delay Time das dürfte dann auch nicht ins Gewicht fallen.
>>@Travel: Also der Transistor ist schon schneller als das menschliche >>Auge lol und der ULN2803 hat eine Schaltzeit von 1 us Turn-on Delay >>Time und 1 us Turn-off Delay Time das dürfte dann auch nicht ins Gewicht >>fallen. Das ist schon richtig und um den ULN mach´ich mir da keine Sorgen, aber probier´s doch einfach, Du wirst schon sehen, daß Du ohne zwischenzeitliches Dunkeltasten der Segmentpins die Segmente des vorhergehenden Digits auf der jeweils nachfolgenden Stelle mitglimmen siehst. Ein Effekt des "langsamen" Digit-Transistors. Desweiteren kommt dazu, daß der Transistor bis herunter auf 0.6V an der Basis leitet, somit also bis an den unteren Rand der Flanke der digitalen Steuersignale.
Travel Rec. wrote: > Dabei kommt Dir > aber die maximale Schaltfrequenz der Kathodentransistoren und auch des > ULNs in die Quere, so daß Du Geistersegmente durch Verwischungseffekte > sehen wirst. Das liegt aber nicht am Transistor, sondern an der falschen Schaltung (Emitterschaltung mit ihrer Miller-Kapazität). Genau deshalb nehme ich lieber die Kollektorschaltung fürs Multiplexen, da kannste auch mit 100kHz einwandfrei schalten. Peter
Travel Rec. wrote: > Das Problem beim Dimmen ist, daß die Dimmfrequenz (also das PWM) zum > einen synchron zur Umlauffrequenz der Digits sein muß und zum anderen > muß diese noch um ein Vielfaches schneller sein. Sonst kommt es zu > unschönem Flimmern oder noch häßlicheren Laufeffekten. Jau, da nimm doch einfach den Timeroverflowinterrupt zum Multiplexen und den Compareinterrupt zum Dunkeltasten. In der Codesammlung (Jumbo-LED) wird das genau so gemacht. Peter
Einfacher Widerstand zw. B und E, und es geht auch in Emitterschaltung.
@Peter: Ich habe meine LED-Anzeigen immer noch problemlos hinbekommen, danke für die Tips, aber ich wollte nur Hinweise geben, welche Probleme auftauchen können. Die Kollektorschaltung habe ich allerdings noch nicht ausprobiert. @Hopser: Bedingt. Die maximal erreichbare Helligkeit des gesamten Displays nimmt dadurch merklich ab.
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.