Archiv verlassen und diese Seite im Standarddesign anzeigen : Attiny24 braucht kurzen GND-Impuls auf Reset zum Starten??
marius86
13.09.2008, 14:44
Hallo,
nachdem ich die Programmierprobleme jetzt gelöst habe, stimmt mit meiner Schaltung immer noch irgendetwas nicht.
Der µC macht erst dann das, was ich ihm programmiert habe, wenn ich nach anschließen der Stromversorgung kurz den Resetpin auf Masse lege.
Mache ich das länger, tut sich nichts. Gebe ich den Resetpin auf VCC (ist ja eh schon auf VCC durch einen 10k-Widerstand) tut sich auch nichts.
Allein ein kurzer Impuls auf GND "startet" den Chip und er fängt an die LEDs zu blinken (zu testzwecken ;) ).
Woran kann das liegen? Danke schonmal.
marius86
13.09.2008, 15:25
PS: nach ein paar Minuten hört er dann wieder auf zu Blinken, bis ich erneut einen GND-Impuls auf Reset gebe... Schon komisch... Habe doch den Resetpin auch über einen 100nF an GND angeschlossen...
EDIT: Läuft jetzt ohne Probleme durch, war vielleicht eine andere Ursache, schlechter Kontakt oder so (kam auch schonmal vor ;) ).
Bauteiltöter
13.09.2008, 15:46
Hallo,
hast du mal den Quellcode?
MfG
Hi,
...nach ein paar Minuten hört er dann wieder auf zu Blinken... könnte auch den Rückschluss auf ein Software-Problem zulassen: Durch den RESET-Impuls beginnt das Programm eben erneut, bis der Fehler wieder auftritt.
Wie läuft das Programm im Simulator?
Gruß
Fred
marius86
13.09.2008, 15:49
Klaro, kein Ding. Ist recht billig ;)
An einem Mega32 funktioniert der einwandfrei.
#include <avr/io.h>
#include <util/delay.h>
void blitz1()
{
PORTA = 0xFE;
_delay_ms(25);
PORTA = 0x00;
}
void blitz2()
{
PORTA = 0xFD;
_delay_ms(25);
PORTA = 0x00;
}
int main(void)
{
DDRA = 0xFF;
PORTA = 0xFF;
while(1)
{
blitz1();
_delay_ms(150);
blitz1();
_delay_ms(400);
blitz2();
_delay_ms(800);
}
}
marius86
13.09.2008, 15:50
@fhs:
Simulator habe ich keinen, ich programmiere mit Xcode unter OSX.
Ich habe jetzt die ganze Zeit das Ding am Laufen und es beendet sich nicht mehr selber. Lediglich beim Strom einschalten muss ich das mit dem Reset machen...
Hi,
klingt fast so, als ob der PowerOn RESET nicht richtig arbeitet -- das wäre schon seltsam! Hast Du BODEN eingeschaltet; falls ja, mit welchen Parametern? Welche Verzögerungszeit hat der Oszillator beim Einschalten? Welcher Oszillator ist gewählt?
Gruß
Fred
marius86
13.09.2008, 16:02
Hi,
BODEN ist ausgeschaltet. Ich verwende den internen Takt nach default-Einstellungen, also mit 64ms Startup.
Meine Fuses sind: L:0x62, H:0xDF, ext:0xFF.
Ich probiere jetzt mal einen anderen Chip. Hab garnicht daran gedacht, dass ich ja noch 2x einen 24er da habe ;)
marius86
13.09.2008, 16:05
Ok, funktioniert direkt. Bin auch blöd, dass mir das nicht früher eingefallen ist :D
Also lags wohl am Montagsmodell-Chip ;)
Danke trotzdem an alle!
Hallo,
selektive Defekte an AVRs sind nicht so ungewöhnlich; z.B. habe ich schon Ports und Teile von Ports und andere Funktionen einzeln ausfallen sehen. Ein nicht funktionierender PowerOn Reset ist aber neu auf meiner Fehlerliste der selektiven Hardware-Probleme!
MfG
Fred
marius86
13.09.2008, 16:09
:) Man lernt nie aus.
Wenn mein jetziger Chip sich in ein paar Tagen auch kaputtrechnet, dann melde ich mich nochmal ;)
Gruß
selektive Defekte an AVRs sind nicht so ungewöhnlich; z.B. habe ich schon Ports und Teile von Ports und andere Funktionen einzeln ausfallen sehen. Fred
Das dachte ich auch mal. Mittlerweile bin ich zu dem Schluss gekommen, dass die Dinger einfach sehr empfindlich sind. Auch wenn man immer wieder liest, dass dem nicht so sei und die einiges wegstecken können. Das kann ich nicht bestätigen.
Am Ende eines Atmel war es eigentlich immer meine eigene Schuld. Softwarefehler (zB den ISP zu früh freigeschaltet), Designfehler, keine ausreichende Schutzbeschaltung, statische Aufladungen, mit dem Tastkopf kurz abgerutscht...
Von analoger Hardware oder normalen ICs kenn ich das alles nicht.
Jetzt passiert jedenfalls nicht mehr so viel. Ich kann also nur raten, den Fehler erstmal bei sich zu suchen.
Gruß
Hallo Gock,
ich stimme Dir 100% zu -- ich habe nie behauptet, dass AVRs "spontan" versagen. Alle der genannten Ausfälle (mit meist einer selektiven Schädigung einiger Komponenten des Controllers) waren bei mir Folge einer Behandlung des AVR außerhalb der Spezifikationen.
Gruß
Fred
marius86
15.09.2008, 16:10
Ok, jetzt geht der Chip nach 3-4min einfach aus, sprich die LEDs blinken nicht mehr...
Woran das nun liegt, weiß ich nicht. Der kurze Resetimpuls auf GND löst das Problem kurzzeitig. Bei Anschluss der Stromversorgung ist der im Moment jedoch (noch?) nicht nötig.
Vielleicht sollte ich einfach den Watchdog programmieren, quasi als workaround...
Was meint ihr?
Hubert.G
15.09.2008, 16:19
Das sieht doch eher nach HW-Fehler aus. Poste doch mal deine Schaltungin allen Details.
marius86
15.09.2008, 16:21
hmm ok, wie mache ich das am geschicktesten?
Ob da meine zeichnerischen Fähigkeiten ausreichen?
marius86
15.09.2008, 16:35
hier mal eine kleine skizze. so kompliziert ist meine schaltung ja auch nicht ;)
Hubert.G
15.09.2008, 18:42
Direkt am µC zwischen 1 und 14 noch einen 100n Kondensator.
Hast du einen Oszi um die Spannung direkt am µC anzusehen.
Wie hoch ist die Spannung vor dem Spannungsregler.
Hat wahrscheinlich nichts mit deinem Problem zu tun (oder doch wenn es ein Kontaktproblem in der Versorgungsspannung ist):
Du hast die Led etwas eigenwillig angeschalten.
Ich würde vorschlagen, Basiswiderstand 3k3, Led zum Widerstand in den Kollektorkreis und den Vorwiderstand der Led an die Spannung vor dem Spannungsregler und im Wert darauf anpassen.
Wie wärs mal mit 100nF zwischen VCC und GND?
Nur am Pullup reicht nun mal nicht.
Das würde dann auch alles erklären, der Controller "pustet" sich durch Spannungsstörungen selbst das Licht aus.
mfG
Markus
marius86
15.09.2008, 19:39
@Hubert: Wie kommst du auf 3k3? Ich habe lange nach Tabellen zur Arbeitspunkteinstellung gesucht, kaum was gefunden und bin dann gut mit den angegebenen Werten zufrieden gewesen. Wie ich da genau drauf gekommen bin, weiß ich auch nicht mehr. Die Datenblätter sind irgendwie nicht so hilfreich finde ich.
Ein Oszi habe ich nicht. Vor dem Spannungsregler liegen im Moment 11,1V an, der Regler sollte aber alles zwischen 9 und 12V auf 5V bringen können mit der Schaltung.
@markus: Ich habe im Grunde doch einen 100nF zwischen VCC und GND. Und zwar am Spannungsregler, oben rechts in der Skizze. Oder ist der "zu weit weg" vom µC?
@Marius,
die 100nF müssen direkt an den µC, um Spannungsschwankungen abzufedern. Siehe AVR-Grundschaltung und Datenblatt.
mfG
Markus
Hubert.G
15.09.2008, 20:33
Wenn der Kondensator weiter als 2cm von µC Pin weg ist, hat er schon den größten Teil seiner Wirkung verloren.
Wenn man den Transistor als Schalter verwendet stellt man keinen Arbeitspunkt in dem Sinn ein, sondern bringt ihn in den UCE-sat zustand. Das ist der benötigte Kollektorstrom, plus etwas Reserve, durch die Stromverstärkung des Transistor, ergibt den benötigten Basisstrom.
Steuerspannung, in dem Fall 5V minus der Spannung zwischen Basis und Emitter(Standardtransistor 0,7V, in deinem Fall 1,5V) durch den Basisstrom ergibt den Basiswiderstand.
Bei Strom bis 100mA rechnet man aber nicht sondern nimmst zwischen 2k2 und 3k3 als Basiswiderstand. Ausnahmen gibts natürlich immer.
Bei einer Stromverstärkungvon 30000 braucht man auch nicht rechnen, da kann man ohne weiteres bis 50k gehen. Nur verwendet man einen Darlington-Transistor zumeist nur, wenn nur ein gringer Basisstrom zur Verfügung steht.
marius86
16.09.2008, 18:20
Danke für die Hinweise, ich werds ausprobieren.
Den BC517 habe ich eigentlich als "Universal-Transistor" gefunden und bestellt. Dass er ein Darlington ist, macht im Betrieb doch eigentlich keinen Unterschied oder? Nur dass er weniger Basisstrom braucht.
Gruß
Hubert.G
16.09.2008, 22:32
So wie du den BC517 verwendest ist es egal, sonst macht es schon einen Unterschied. Du brauchst da nur die Datenblätter vergleichen.
Universaltransistor wäre eher ein BC547.
marius86
18.09.2008, 21:07
Hallo nochmal,
meine Schaltung macht auch mit 100nF direkt an den Pins Probleme. Manchmal startet er beim Einschalten der Stromversorgung garnicht und fast immer hört er nach ein paar Minuten einfach auf zu blinken.
Ein GND-Impuls auf Reset löst wie immer das Problem. Vielleicht liegts irgendwo in den Tiefen der Schaltung und ich löse das Ganze doch mit dem Watchdog?
Gruß
Marius
Hubert.G
18.09.2008, 22:41
Du kannst das wahrscheinlich mit dem Watchdog lösen, aber nur die Auswirkung, das Problem wird weiter bestehen bleiben.
marius86
18.09.2008, 22:44
Ich werde die Schaltung sowieso nocheinmal aufbauen für einen Freund von mir, vielleicht funktioniert die dann richtig. Wenn nicht, liegts wohl grundsätzlich am Schaltungsdesign, wobei ich da auch keinen Fehler (mehr) sehe...
Schon mal den µC ausgetauscht?
Wie sieht es mit der Versorgungsspannung aus? Ist die definitiv sauber? Hast Du mal ein Oszi daran gehalten?
...
marius86
18.09.2008, 23:08
Hab 3 gleiche tiny24 durchprobiert.
Versorgungsspannung ist ein Akku mit 11V an Spannungsregler 7805 auf 5V, ein Oszi habe ich nicht.
Hmm, scheint hartnäckig zu sein.
Dann würde ich, ohne die genaue Schaltung zu kennen, was die Sache nicht einfacher macht, zum äußersten gehen und den U-Regler und alle beteiligten Kondensatoren tauschen. Zusätzlich noch die Widerstände durcmessen, vielleicht ist ja irgendwo eine Überlastung des Reglers in FOrm eines zu geringen Rs...
Ist zwar nur ein Korn, aber Du weißt ja wie das mit den Hühnern ist... ;-)
Gruß
Hubert.G
19.09.2008, 12:35
Was mir gerade auffällt, ein Akku mit 11V, was ist das für einer. Ein Bleiakku mit 11V ist ziemlich leer und könnte leicht einknicken. Nimm einmal ein Netzteil, eines mit 300mA sollte schon reichen.
marius86
19.09.2008, 13:33
Nee, ist ein Lipo mit 11,1V, momentan dank Volladung immer noch 11,5V.
Die Schaltung läuft jetzt auch mal 20min durch, scheint also zu gehen. Ob durch Watchdog oder irgendwas anderes weiß ich nicht. Hauptsache es funzt. Wenn die zweite Schaltung auch dieselben Probleme hat, liegts echt irgendwo am grundlegenden Design...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.