Spannungsversorgung per ISP -> geht; per Universalnetzteil -> geht nicht

OP #2781210
Lesenswert?

Guten Abend,

ich habe einen Tiefpass, welche ich an einen Attiny45-20 führe. Per ADC 
wird das ganze konvertiert und entsprechend eine LED geschaltet.

Wenn ich die Spannungsversorgung per ISP mache, funktioniert alles.
Nutze ich jedoch mein Universalnetzteil (auch 5V, Pins sind einfach auf 
die beiden ISP-Pins verbunden) funktioniert es nicht mehr...
Woran liegt das? Soll nämlich später eigentlich sowieso an einem NT 
betrieben werden.

Danke und Gruß
#2781230
Lesenswert?

Möglicherweise steigt die Spannung des Netzteil beim Einschalten zu 
langsam an. Sprich die Versorgungsspannung hat noch nicht stabile 5V 
erreicht, während der Reset-Impuls schon beendet ist. Kommt bei kleinen 
Schaltnetzteilen öfters vor.

Abhilfe schafft ein externer Reset Schaltkreis (R und C) oder Du 
aktivierst per Fuse den Brown-Out Detektor. Er verlängert den 
Reset-Impuls quasi so lange, bis die Versorgungsspannung die 
eingestellte Schwelle erreicht hat.
Gast #2790519
Lesenswert?

1) Ich würde als nächstes ein Testprogramm aufspielen: Das Programm 
sollte den internen Oszillator verwenden und die LED einfach blinken 
lassen.
Wenn das funktioniert, liegt es am Programm/ADC Eingang.

2) Wie hoch ist die Spannung an Vcc des Tinys?
OP #2791312
Lesenswert?

So langsam glaube ich an einen Wackelkontakt...
Einmal nach dem Einschalten hat es mit der LED auch mit NT funktioniert. 
War allerdings recht dunkel (selbst dann auch wieder mit ISP)

Dann nach nem kurzen Test alles wieder wie oben beschrieben :/

Hab jetzt nochmal Vcc, GND und Reset gemessen. Das passt.
Aber selbst bei Wackelkontakt dürfte es nicht (bis auf den einen Vorfall 
vorhin) immer so sein, dass es nur mit ISP geht
Gast #2791712
Lesenswert?

Er hat allerdings schon einen manuellen Reset-Impuls in eingeschaltetem 
Zustand versucht, Ich denke, diesen Test hat er damit schon abgedeckt.

Oder kann ein AVR sich irgendwie so "aufhängen", dass er nichtmal mehr 
auf einen Reset-Puls reagiert? Würde mich wundern.

Wo ich das gerade eintippe fällt mir allerdings etwas anderes ein, was 
mir mal passiert ist. Ich hatte den Watchdog einmal falsch verwendet:


int main() {
  init(); // dauert eine Sekunde
  watchdog aktivieren;
  while (1) {
     tuwas(); // dauert wenige ms
     watchdog zurücksetzen;
  }
}

Dieses Programm funktionierte immer nach Einschalten der Stromversorgung 
einwandfrei, aber wenn ich danach einen Reset-Impuls gegeben habe (per 
Taster) lief es nicht mehr. Knackpunkt war, dass der Reset-Impuls den 
Watchdog nicht deaktiviert. Während der init() Funktion hat er deswegen 
immer wieder zugebissen.

Nach Stromausfall klappte es deswegen, weil dann der Watchdog erstmal 
deaktiviert ist und erst NACH der Initialisierung aktiviert wurde.

Eventuell hast Du einen ähnlichen Fehler im Source. Vor allem wenn der 
Fehler auch noch mit einem langsam ansteigenden Netzteil kombiniert ist, 
hast Du einen hübschen Doppelfehler, der schwer zu erkennen ist.
OP #2795491
Lesenswert?

Womöglich liegt der Fehler schon im Schaltungsdesign.

Und zwar habe ich Masse von ISP/NT mit Sound-Masse (vom Klinkenstecker) 
verbunden. Habe mir sagen lassen, dass dies eigentlich nicht so sein 
sollte.

Allerdings muss ich damit einen Transistor schalten, weshalb ich keine 
andere Möglichkeit habe...

Außerdem geht es ja mit ISP (wobei der Tiefpass schon nicht immer 
passend reagiert wie ich finde. Weiß aber nicht ob das so normal ist)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren