Pullups beim ATTINY 13 (A oder V) - was passiert hier?

michaschumann

Neues Mitglied
27. Jan. 2015
4
0
0
62
Marburg
Sprachen
  1. ANSI C
Hallo,

ich bin neu hier und kämpfe mit einem Problem, das ich nicht zu lösen vermag. Ich habe schon einige Erfahrung mit den Atmels und habe mit dem Mega32 einiges entwickelt. Nun will ich mit dem Tiny13 eine supersimple PWM Einblenden/Ausblenden Geschichte für LED Leisten bauen (mit einem IRLU024N via 1K WIderstand an PB0 bzw. PB1, PB2, PB3 und PB4 sind EIngänge und haben Taster auf Masse, PB2 ist ein Modus-Umschalter für Tipp oder Schaltbetrieb). Das Ganze läuft perfekt, allerdings nur, so lange der Programmer angesteckt ist. Die Betriebsspannung kommt über einen 7805 (später 78L05). 100nF Folienkondensatoren sind sowohl am Tiny las auch am Spanunngsregler. Und natürlich den obligatorischen 10K WIderstand an Reset zu +.

Das Naheliegenste war zunächst, dass keine Pullups auf den Eingängen sind, denn diese fallen dann tatsächlich auf fast Masse, wenn der Programmer abgesteckt wird. Diese sind aber im Code explizit angeschaltet:

...
// 0 und 1 Ausgänge
// 4 und 3 sind Schalt/Tasteingänge, 2 bestimmt Modus
PORTB = (1<<PB2) | (1<<PB3) | (1<<PB4);
DDRB = (1<<DDB0) | (1<<DDB1);
// Fast PWM aktivieren
TCCR0A = (1 << COM0A1) | (1 << COM0B1) | (1 << WGM01) | (1 << WGM00);
TCCR0B = (0<<WGM02) | (1<<CS00);
...

Ich habe dann auch noch mit einer anderen Spannungsversorgung geprüft, mit anderen Tinys (A / V) immer der gleiche Effekt. Aber auch mit externen Pullups läuft es nicht. Es ist, als wäre der Prozessor tot, er hat aber Betriebsspannung, Masse und H auf Reset. Mit dem Oszilloskop auf der Versorgungsspannung keine relevanten Dinge. Auch verschiedene Fuse-Optionen habe ich bereits getestet.

Wahrscheinlich übersehe ich etwas Offensichtliches und jemand hier sieht es sofort.

Danke schon mal!

Michael
 
Was mach der denn ohne an den PWM-Ausgängen? Haste da mal das Oszi drangehalten?
Die 4 geposteten Zeilen stellen ein, was Du gesagt hast (von den Initial-Values ausgehend):
PORTB[4..2] gesetzt -> da die korrespondierenden DDR-Bits gelöscht sind werden hier die Pullups aufgeschaltet (solange PUD in MCUCR nicht gesetzt ist, es gibt bei den dreien auch keine alternative Funktion die den Pullup Override Enable setzt (Tabelle 10-4 Datenblatt))
DDRB[1..0] gesetzt -> Ausgänge, erstmal low
In TCCR0B stellst Du den Timer0 auf FastPWM bis 0xFF (8bit), beide OCPs als PWM,
In TCCR0A wird der mit Prescaler=1 an den Systemtakt gekoppelt.

Wenn Du jetzt irgendwo auch noch was sinniges in die OCRegister schreibst, sollte 'ne entsprechende Rechteckfunktion an den ausgängen zu erkennen sein.

Es scheint ja mit dem Programmer dran auch zu gehen (welcher Programmer?)

Hmm... ich hatte sowas wenn ich mich recht erinner mal eher andersrum: Da mußte man nach dem flashen 'n manuellen Reset durchführen (und den Progger abziehen) damits ordentlich lief.

P.S.: Willkommen hier im Forum, auch wenn ich erstmal nicht helfen kann!
 
Gelöst

Danke für die Antwort, es war super simpel: Ich nutzte noch den WinAVR (weil er so herrlich simpel ist für kleine Projekte) und der hat wohl einen Uralt GCC der Müll produziert. Habe gerade das Atmel Studio 6.2 verwendet, selber Code, jetzt geht's ohne angesteckten Programmer. Was auch immer der WINAVR da produziert hat (ich nehme an, die Fusebits hat er falsch geschrieben).

Also besser Finger weg vom WinAVR.

Michael
 
Nachtrag

Wahrscheinlich schon bekannt, AVr Studio 6.2 macht Ärger mit dem AVR ISPII, nach einem Flashen muss man den Programmer vom USB abstecken und wieder anstecken und mehr. Daher besser das alte 6.1er nehmen.
 
Wenn der Code korrekt im AVR ist (und das ist er ja irgendwie), ist der Weg den er dazu genommen hatte egal. Das einzige, was ICH mir denken kann ist, daß Du den irgendwie über Debug Wire am laufen hattest. Andererseits wäre Dir das dann sehr wahrscheinlich an den Fuses aufgefallen.
WinAVR kenne ich als Assembler-Programmierer nicht.

Danke für die Warnung vor dem Update auf 6.2, war mir nicht bekannt (ich nutze 6.1). Du beziehst Dich dabei auf den originalen AVRISP mkII?
 
AVRStudio 6.2

Ja, es ist der Originale von Atmel. Ich hatte es gestern mit 6.2 probiert und exakt den Effekt, dann alles entfernt und 6.1 installiert, es klappt. Siehe auch hier: http://www.mikrocontroller.net/topic/349506.

Und ja, es ist wirklich seltsam mit WinAVR. Debug-Wire hatte ich definitiv aus, wirklich nur SPIEN und internen Takt, sonst nichts. Alle 5 normalen IO-Pins habe ich benutzt und diese funktionierten alle mit angestecktem Programmer.

Mein ATMEGA32 Projekt hat der WINAVR hingegen sauber programmiert (31K Flash voll). Ich glaube daher, dass der Compiler oder AVRDUDE so alt sind, dass sie irgend einen Mist produziert haben und der neuen Charge des ATTINY 13A das nicht passte.

Wie auch immer, jetzt geht es und ich fühle mich ziemlich dumm, nicht das AVR-Studio verwendet zu haben, das auch eine Simulation erlaubt und mit dem man auch einiges mal so z.B. im Zug ohne Atmel Hardware ausdenken und testen kann. Also unter dem Strich eine positive Fügung ;-)

Michael
 
Wie gesagt, Danke für die Warnung (Es scheint auch andere Programmer zu betreffen).
...dass sie irgend einen Mist produziert haben und der neuen Charge des ATTINY 13A das nicht passte...
Ich sehe zwischen dem 13 und dem 13A eigentlich nur Unterschiede im Stromverbrauch (wenn ich da nichts übersehen habe) - die haben sogar dieselbe Signatur. Der 13 (ohne A) hatte bis Revision "B" einige Fehler laut Errata, ab Revision "D" nur noch, daß Eeprom-Schreibzugriffe mindestens 1,9V Vcc erfordern. das ist beim 13A auch noch so.
Wenn ich was übersehen habe, sag bescheid...
...nicht das AVR-Studio verwendet zu haben, das auch eine Simulation erlaubt und mit dem man auch einiges mal so z.B. im Zug ohne Atmel Hardware ausdenken und testen kann...
Aber nicht immer darauf verlassen - einige komplexere Zusammenhänge werden nicht korrekt simuliert, hat mich hier ziemlich verwirrt.

Viel Erfolg weiterhin,

LotadaC
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)