Hallo, eine kleine ATtiny24-Schaltung hat 5 LED, von denen 4 Stück prima leuchten, eine nur dunkel glimmt, was sie nicht soll. Kathoden auf Masse, alle sind über jew. 1 kΩ an ihre t24-Pins angeschlossen; High am Pin macht sie also an. Es sind 2-mA-LED, die Farben sind rote, orange, gelbe. Boardspannung ist 5 V. Es glimmt eine der roten, während andere rote anständig leuchten. Die Widerstände sind alle auf den Punkt 1k. Keiner weicht um mehr als 1 Ω ab. Den LED kann ich bei spannungslosem Board testweise mit einer kleinen Pinzette mit voneinander isolierten Backen und mit Anschlüssen (für'n Multimeter zB) einzeln 2 mA bei 1,8 V geben. Dann sind alle gleich hell. Die eine LED ist also nicht matschig. Wenn ich (immer noch bei spannungslosem Board) den 'Lastwiderstand' aus LED und R messe, der an jew. einem Pin hängt, dann habe ich da ca. 1,3 MΩ ggü. Masse. Bei allen LED-Pins gleich. Der PB0, wo die dunkle LED dranhängt, muß also nicht mehr treiben als die anderen, er hat keine versteckte Last. Trotzdem liefert PB0 nur 1,78 V, wenn die Schaltung an ist und ich seinen High-Pegel messe. Jeder andere LED-Pin liefert 5 V. Der Code macht mit dem PB0 nichts anderes als mit den anderen PXy auch (s. Anhang). Laut Datenblatt hat der PB0 nur eine einzigartige Besonderheit: Er kann als Eingang fungieren für einen ext. Takt (CLKI). Dafür muß man die CKSEL{3:0}-Fuses alle auf 0 machen, was ich nicht tat. Meine stehen auf Default 1101. Und vor allem den PB0 zum Eingang machen, was ich auch nicht tat. Das war ungefähr der Punkt, wo ich dachte: Okay, Exemplarfehler, der Pin ist beschädigt. Also baute ich eine zweite Platine auf. Ergebnis: genau das gleiche. Was da los?? VG, Jan.
Jan R. schrieb: > Und vor allem den PB0 zum Eingang machen, was ich auch > nicht tat. Ja! Nicht irgendwas verwechselt? Denn: Eingang ist er automatisch. Zum Ausgang, muss man ihn machen.
Jan R. schrieb: > Meine stehen auf Default 1101. Das ist nach meinem Datenblatt eine Einstellung für externen Quarz oder Resonator. Das passt dann zu deiner Aussage dass PB0 hochohmig, nämlich in diesem Fall ein Quarz-Input ist.
Jan R. schrieb: > attiny24_mit_5_led.png C3 gehört übrigens nicht an +5V sondern an den Vcc Pin und den Gnd Pin deines Tiny. Das ist ein kleiner aber feiner Unterschied.
Arduinoquäler schrieb: > Jan R. schrieb: >> Meine stehen auf Default 1101. > > Das ist nach meinem Datenblatt eine Einstellung für externen > Quarz oder Resonator. Ja, aber Vorsicht: 1 ist unprogrammiert, 0 ist programmiert. Da wird gelegentlich in den Entwicklungstools der invertierte Wert angezeigt - und dann wäre es der interne Oszillator, so wie die Teile auch ausgeliefert werden.
HildeK schrieb: > und dann wäre es der interne Oszillator, so wie die Teile > auch ausgeliefert werden. Ja für die richtige Sprechweise muss der TO schon selbst sorgen. Aber nachdem jetzt Schweigen im Walde herrscht wird er wohl seinen Takt auf externen Quarz gesetzt gehabt haben ....
Arduinoquäler schrieb: > Ja für die richtige Sprechweise muss der TO schon selbst sorgen. > > Aber nachdem jetzt Schweigen im Walde herrscht wird er wohl > seinen Takt auf externen Quarz gesetzt gehabt haben .... Arduinoquäler schrieb: > C3 gehört übrigens nicht an +5V sondern an den Vcc Pin > und den Gnd Pin deines Tiny. Das ist ein kleiner aber > feiner Unterschied. Eine unmißverständliche Ausdrucksweise fehlt dir aber auch völlig.
molchi schrieb: > Eine unmißverständliche Ausdrucksweise fehlt dir aber auch völlig. Soll ich schreiben dass das Gras grün ist? Wenn du es nicht verstehst und du dich ausgegrenzt fühlst dann entschuldige bitte ....
Arduinoquäler schrieb: > molchi schrieb: >> Eine unmißverständliche Ausdrucksweise fehlt dir aber auch völlig. > > Soll ich schreiben dass das Gras grün ist? Ja, für den, der es nicht weiß. Die anderen fragen ja auch nicht danach.
HildeK schrieb: > Ja, aber Vorsicht: 1 ist unprogrammiert, 0 ist programmiert. Log.1 bleibt immer noch 1 und Log.0 bleibt 0. > Da wird gelegentlich in den Entwicklungstools der invertierte Wert > angezeigt - und dann wäre es der interne Oszillator, so wie die Teile > auch ausgeliefert werden. Das ist dann gelegentlich total falsch - bezeichnen ist eine Sache, Wert falsch anzeigen eine ganz andere. Atmel kann morgen entscheiden, dass Log.1 programmiert ist, aber deswegen wird sich der Wert von Log.1 nicht nach 0 ändern. Die meisten Tools haben gerade deswegen auch Checkbox daneben...
HildeK schrieb: > Arduinoquäler schrieb: >> Jan R. schrieb: >>> Meine stehen auf Default 1101. >> >> Das ist nach meinem Datenblatt eine Einstellung für externen >> Quarz oder Resonator. > > Ja, aber Vorsicht: 1 ist unprogrammiert, 0 ist programmiert. > Da wird gelegentlich in den Entwicklungstools der invertierte Wert > angezeigt - und dann wäre es der interne Oszillator, so wie die Teile > auch ausgeliefert werden. So ist es auch gem. meinem Datenblatt. Ich schrieb, ich ließ die CKSEL-Fuses auf Default und ergänzte 1101. Das sind nat. bei Atmel-Fuses inverse Bits und ich übernahm in meiner Schilderug das Inverse von dem schönen Tool Fuse Calculator (s. im Anhang unten links im Bild). Dort sieht man auch, daß zur Wirkung dann 0010 kommen (oben). Da die Schaltung keinen ext. Quarz oder sonstige externe Taktquelle hat (s. Schaltplan im OP) und auch nix dafür im Code getan wird (s. Beispielcode), kann man beruhigt davon ausgehen, daß der µC seinen internen RC-Osz. nimmt und damit arbeitet. Auch wird im Code der PB0 als Ausgang konfiguriert.
Arduinoquäler schrieb: > Jan R. schrieb: >> attiny24_mit_5_led.png > > C3 gehört übrigens nicht an +5V sondern an den Vcc Pin > und den Gnd Pin deines Tiny. Das ist ein kleiner aber > feiner Unterschied. Der Unterschied ist bekannt und auch im Layout beherzigt worden.
Jan R. schrieb: > So ist es auch gem. meinem Datenblatt. Ich schrieb, ich ließ die > CKSEL-Fuses auf Default und ergänzte 1101. Das sind nat. bei Atmel-Fuses > inverse Bits Das ist natürlich überhaupt nicht natürlich. Und inverse bits gibt es nicht, vielleicht invertierte aber warum sollte man etwas was 0010 ist, als 1101 bezeichnen ? Und Fuse Calculator zeigt nicht Log.0 als 1 an, sondern hat ein Checkbox daneben, was etwas ganz anderes ist.
Das Taktquellen-Nebenthema samt Fuses nimmt hier bislang den meisten Raum ein. Ich nahm es lediglich aus Gründlichkeit in den Thread auf, obwohl ja aus meiner Schilderung des Verhaltens der Schaltung klar werden sollte, daß sie läuft, also Takt hat, und daß PB0 als Ausgang grundsätzlich funktioniert. Mir selbst fehlen jetzt Ansatzpunkte, und darum eröffnete ich den Thread, warum ein Ausgang bei korrekter Beschaltung und korrekter Konfiguration nur ~1,8 V High-Pegel liefern könnte, wenn gleichzeitig alle Nachbarn bei identischer Behandlung ordentlich funktionieren. Ideen?
Wie und unter welchen Messbedingungen hast du die Spannung von 1.78 V an PB0 gemessen? Schalte statt LED & Vorwiderstand einen 22 kOhm-Widerstand von PB0 zu Masse, und miss die Spannung darüber bei ein- und ausgeschaltetem Port B. Grüsse - Microwave
1 | DDRB |= (1<<DDB1) | (1<DDB0); |
2 | ^
|
Ergo: PB0 ist bei dir ein Eingang.
Stefan E. schrieb: >
1 | > DDRB |= (1<<DDB1) | (1<DDB0); |
2 | > ^ |
> Ergo: PB0 ist bei dir ein Eingang.
Ahh! Ohh Mann!
Was habe ich genau diese Codeteile angestarrt ...
Ich danke Dir ganz herzlich, Eagle-Eye-Ernst!
ps: läuft sofort korrekt.
Jan R. schrieb: > ps: läuft sofort korrekt. LOL. Kaum macht man es richtig... P.S. Ist wohl jedem schon mal passiert.
:
Bearbeitet durch User
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.