Forum: Mikrocontroller und Digitale Elektronik ATTiny85 Projekt macht Probleme


von Nicola R. (nicola_r)


Angehängte Dateien:

Lesenswert?

Hallo,
ich bin dabei mit einem ATTiny85 eine AutoPowerOn Schaltung zu 
realisieren. Im Prinzip funktioniert die schon aber leider geht 
regelmäßig beim anschließen der Spannungsversorgung auf kurz oder lang 
der Tiny kaputt oder verliert seine Programmierung. Ich bin kein 
Elektroniker und bin mittlerweile mit dem Problem überfordert und würde 
mich um Hilfe und Tipps sehr freuen.

Ich programmiere den Tiny auf dem Digispark-Board und löte im im 
Anschluss aus, weil in dem Gerät, ein Mobilerouter, nicht genügend Platz 
für das komplette Board besteht. Das ganze ist zur Zeit noch 
Freilandverdrahtet, soll aber auf einer sehr dünnen Platiene platz 
finden. Ich hab mal einen Schaltplan erstellt und tue die Anschlüsse 
kurz erklären.

Externe Anschlüsse
J1 = Spannungseingang 5V
J2 = Spannungseingang von der Netzbereitschafts-LED 1,75V
J3 = Eingang vom Einschalttaster
J4 = Masse

Attiny85 U1 Anschlüsse
PB0 = Analoger-Spannungsausgang für die Status-LED eingestellt auf 2,5V
PB1 = Digitalausgang für rote LED. Bei High wird die LED gesperrt bei 
LOW wird die LED auf Masse gezogen.
PB2 = Digitalausgang für grüne LED. Bei High wird die LED gesperrt bei 
LOW wird die LED auf Masse gezogen.
PB3 = Analogeingang für Netzbereitschafts-LED. Digital ging nicht da nur 
1,7V zur Verfügung stehen.
PB4 = Digitalausgang zum Schalten von Q1. Zuerst wurde nur ein 
Transistor verbaut. Beim entfernen der Spannungsversorgung lag aber 
unregelmäßig am Tiny PB4 HIGH an und schaltete dann den Router aus. 
Deshalb schaltet Q1 beim entfernen der Spannungsversorgung U1 PB4 ab.

Funktionsweise
Bein einstecken der Spannungsversorgung, wird die Netzbereitschafts-LED 
überwacht. Ist an U1 PB3 LOW, wird der Einschalttaster auf Masse 
gezogen(PB4 = HIGH), der Router eingeschaltet und die rote LED blinkt 
schnell.
Ist PB3 HIGH, ist PB4 LOW und die Grüne LED blinkt langsam.

Irgendwo hab ich, mit der Naivität eines Laien, einen Fehler in der 
Verschaltung. Kann sein das nur eine Diode in der 5V Leitung fehlt. Aber 
wenn welche?

von N. M. (mani)


Lesenswert?

Unbeschalteter Reset Pin?

Allgemein sieht mir die Transistorschaltung und die Beschaltung der LEDs 
etwas merkwürdig aus...

: Bearbeitet durch User
von Manuel H. (manu77)


Lesenswert?

Vorwiderstände der LEDs fehlen. Durch Temperaturänderung liegst du wohl 
außerhalb des zulässigen Bereichs der controller Pins. n-Fets und 
Widerstände nehmen. Leistung nie durch die PINs wenn nicht nötig.

von Stefan F. (Gast)


Lesenswert?

Ohne Kontext ergibt die Transistorschaltung keinen Sinn. Wir brauchen 
einen Schaltplan, der auch das zeigt, was du daran anschließt.

Zwei Fehler sind offensichtlich: LED ohne Vorwiderstand, und Basis von 
Q2 ohne Vorwiderstand.

von Stephan (stephan_h623)


Lesenswert?

Lass den Tiny einfach weg. Laut dem Schaltplan wird ab ca. 1,4V 
Versorgungsspannung J3 auf Masse gezogen. Egal was der Tiny macht.

Wenn er stirbt dann vielleicht an der Überlastung der Ausgänge. Oder was 
anderem. Bei dem Unfug ists schwer irgendwas auszuschließen …

von Nicola R. (nicola_r)


Lesenswert?

OK, hab mir die Beiträge durchgelesen und hoffe sinngemäß auch 
verstanden, das alle Leitungen mit Wiederständen versehen werden müssen. 
Ich hab mir auch gleich zwei, drei Videos darüber abgeschaut. Ich bin 
davon ausgegangen, dass an das Digispark die Anschlüsse direkt 
angeschlossen werden ohne weitere Vorschaltung.

Das ohne Tiny und nur mit einem Transistor laufen lassen macht keinen 
Sinn. Denn dann würde jedesmal wenn Spannung angeschlossen wird der 
Taster betätigt. Sprich fällt die externe Stromversorgung aus, läuft der 
Router per Akku weiter. Ist die Stromversorgung wieder hergestellt und 
der Router läuft noch auf Akku, wird der Router ausgeschaltet.
Der Tiny soll bei Spannungsanschluss überprüfen ob der Router noch 
läüft, wenn nicht soll er Ihn wieder starten.

danke für die Tipps und Anregungen

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Nicola R. schrieb:
> Das ohne Tiny und nur mit einem Transistor laufen lassen macht keinen
> Sinn.

Deinem Schaltplan nach zur urteilen ist der Tiny für das Ergebnis 
komplett irrelevant.

Dein Konstrukt aus R1, Q1 und Q2 wird beim anlegen der 
Versorgungsspannung IMMER zu einem Low-Pegel am Kollektor von Q2 
(J2/"Vom Einschalttaster") führen!

von Nicola R. (nicola_r)


Lesenswert?

Ok, vielen danke für deinen Hinweis. Ich werde das überprüfen und das 
Ergebnis  veröffentlichen.

Ich bin halt wirklich Laie und vergeh mich dass erstmal an so einem 
Projekt.

von Nicola R. (nicola_r)


Lesenswert?

Ok, ich hab es jetzt überprüft. Es verhält sich so wie ich es sagte. 
Wenn der Router ausgeschaltet ist und Spannung angeschlossen wird, 
schaltet sich der Router ein. Das währe dann Netzausfallsimulation 
Netzspannung wieder hergestellt Nr.1. Bei Netzausfall Nr 2, schaltet er 
sich aber aus. Das würde sich dann bei allen geraden Netzausfällen also 
bei 2,4,6 usw. wiederholen und er wird sich ausschalten. Bei ungeraden 
Netzausfällen wird er sich einschalten.

Jetzt hab ich die Funknetzbereitschafts-LED mit einer Schutzdiode 
parallel zur Basis am Transistor geschaltet. Ist der Router hochgefahren 
und hat Funknetzverbindung liegen an der LED ca. 1,7V an. Die reichen 
aus um den Transistor Bei Netzspannungsausfall durchgeschaltet zuhalten. 
Wenn jetzt ein Netzausfall simuliert wird, bleibt der Router auch bei 
Wiederherstellung der Netzspannung eingeschaltet und schaltet sich ein 
wenn der Akku z.B. nach einem Netzausfall leer ist. Im Prinzip läuft das 
so, auf den Router zugeschnitten, stabil. Aber der Hintergrund von 
meinem Projekt ist eine universelle Lösung, die sich durch 
Programm-Modifikation z.B. auch auf PC´s adaptieren lässt. Also mache 
ich mit dem Tiny weiter und berichte davon.

Danke und Gruß

: Bearbeitet durch User
von Enrico E. (pussy_brauser)


Angehängte Dateien:

Lesenswert?

Mach doch wenigstens an geeigneter Stelle noch 3 sinnvoll platzierte 
Widerstände an deine "Was-passiert-dann-Maschine" dran, damit sie nicht 
mehr abstürzt!

: Bearbeitet durch User
von Enrico E. (pussy_brauser)


Lesenswert?

N. M. schrieb:
> Unbeschalteter Reset Pin?

Der muss natürlich noch nachträglich beschaltet werden!

N. M. schrieb:
> Allgemein sieht mir die Transistorschaltung und die Beschaltung der LEDs
> etwas merkwürdig aus...

Aber dafür kommt Nicola mit nur zwei Transistoren für ihre 
Logikverknüpfungsmatrix aus und die Reversespannung wird bei nur 5V 
Versorgungsspannung sowohl bei den Transistoren, als auch bei den LEDs 
in keinem Logikzustandsfall überschritten.

von Stephan (stephan_h623)


Angehängte Dateien:

Lesenswert?

So sollte das funktionieren.

von Stephan (stephan_h623)


Lesenswert?

Enrico E. schrieb:
> Mach doch wenigstens an geeigneter Stelle noch 3 sinnvoll platzierte
> Widerstände an deine "Was-passiert-dann-Maschine" dran, damit sie nicht
> mehr abstürzt!

Da wären bei Vcc=5V immer noch beide Transistoren permanent 
durchgeschaltet.
Denn Q2 braucht zum durchschalten den Strom aus PB4 über Q1 gar nicht. 
Der Basisstrom von Q1 geht über den Emitter in die Basis von Q2 und 
schaltet den genauso durch. Deine zusätzlichen 10k knapsen davon zwar 
was ab, aber über R1 fließen grob (5V - 2*0,7V)/1kOhm=3,6mA, Ube von Q2 
ist 0,7V, über die 10k werden 0,07mA "vorbeigeleitet".

von Enrico E. (pussy_brauser)


Lesenswert?

Stephan schrieb:
> So sollte das funktionieren.

Du hast Recht, Q1 wird für das Detektieren des 
Versorgungsspannungsausfalls gar nicht benötigt. Denn wenn die 
Versorgungsspannung ausfällt, sperrt Q2 so oder so. 👍

von Axel R. (axlr)


Lesenswert?

Nicola R. schrieb:
> PB0 = Analoger-Spannungsausgang für die Status-LED eingestellt auf 2,5V

Hatta nicht. PB0 ist ein Digtal-IO.
Wie hoch ist die Spanung, wenn die "Netz-LED" nicht leuchtet?

Die beiden Transistoren: die Basis vom "rechten Transistor" Q1 liegt 
über 1K an +5V. Der Emitter ist mit der Basis von Q2 verbunden, dessen 
Emitter geht an Masse. Beide Basis-Emitter-Strecken sind in 
Flussrichtung. Also wird, wie das oben ja schon gesagt wurde, Q1 den Q2 
IMMER ansteuern, sofern die beiden Flussspanungen der BE-Strecken 
+Sp.Abfall über dem 1K überwunden worden sind. Dabei ist tatsächlich von 
ohne Belang, was der Kollektor von Q1 über PB4 "zu sehen" bekommt.
Was soll eigentlich passieren?
Wenn der Strom ausfällt, willst du automatisch den Router über den 
Einschaltknopf neu starten, weil er von selbst nicht mehr an geht?
Dann schreib das doch so und frag, ob jemand das hinbekommt.
Wenn Du eine andere Intention hast, raus damit.
Hier von "unfug" zu schreiben, finde ich allerdings gehässig. Das nur am 
Rand. Ärgerlich für alle beteiligten in diesem Zusammenhang ist 
natürlich, dass durch die Verfügbarkeit und ob des günstigen Preises 
dieser "Digispark" und was weiss ich nicht für module der Eindruck bei 
Leuten, die sich ganz sicher mit anderen Sachen auskennen nur nicht mit 
mikrocontrollern und deren Handhabe, erweckt wird, es sei alles ganz 
einfach. Ganz so einfach ist es eben doch nicht, wie man ja hier an 
diesem doch recht unspektakulären "Projekt" sieht.

von Stefan F. (Gast)


Lesenswert?

Nicola R. schrieb:
> verstanden, das alle Leitungen mit Wiederständen versehen werden müssen

ganz falsch.

von Nicola R. (nicola_r)


Lesenswert?

Hallo,
erstmal mein Dank für das rege Interesse und Vorschläge die ich auch 
umsetzen werde.

Ich komme aus dem groben Handwerk und sehe "das ist Unfug" mehr als 
Orientierungshilfe als wie Gehässigkeit. Wird der Unfug dann noch mit 
einem sinnvollem Vorschlag Kommentiert ist das na klar optimal.

von Axel R. schrieb
"Wenn der Strom ausfällt, willst du automatisch den Router über den
Einschaltknopf neu starten"

Wenn der Strom ausfällt und der Akku bis zur nächsten 
Spannungsversorgung leer ist, Ja. Hat der Akku bis dahin noch Spannung, 
soll nichts passieren.

"weil er von selbst nicht mehr an geht?"
Deshalb die AutoPowerOn Funktion durch die Schaltung.

"Dann schreib das doch so und frag, ob jemand das hinbekommt."

Es gibt helfen und machen lassen.
Helfen heißt für mich erstmal selbst versuchen sein Projekt umzusetzen 
und das Ergebnis analysieren. Dann solange versuchen Fehler zu beheben 
bis man mit seinem Latein am ende ist. Und dann erst, wie in meinem 
Fall, um Hilfe bitten.
Machen lassen ist im Gegensatz und unter umständen, selbst nicht genau 
wissen was man will und die Arbeit, am besten noch für lau, anderen 
überlassen.

Im Prinzip hat der Unfug bei bis zu 99/100 Stromausfällen funktioniert 
nur irgendwann wars halt vorbei. Also nicht standfest und damit nutzlos.

Ich werde jetzt erstmal die Vorschläge von Enrico und Stefan umsetzen 
und dann weiter berichten. Das dauert aber etwas, da mein Teilelager 
alte Leiterplatten sind die sich über die Jahre ansammelten und ich 
dafür ausschlachte.

Danke und Grüße

von Stephan (stephan_h623)


Lesenswert?

Nicola R. schrieb:
> Das dauert aber etwas, da mein Teilelager
> alte Leiterplatten sind die sich über die Jahre ansammelten und ich
> dafür ausschlachte.

Das sollte easy sein. Für die LEDs passt alles zwischen 270 Ohm und 
2,2k. Ist dann halt evtl. etwas dunkel.

Die 4,7k am Transistor können auch 1k-10k sein. Evtl. auch gar nicht 
nötig oder es reicht auch noch 100k (weiß grad nicht wie die Pins an dem 
Controller nach dem Reset geschaltet sind).

Und am Reset-Pin kannst auch problemlos 10nF statt 100nF nehmen und 
statt 4,7k auch 10k. Und zur Not kannst den auch unbeschaltet lassen (da 
ist intern schon ein Widerstand verbaut), empfohlen ist aber Kondensator 
+ Widerstand.

von Peter D. (peda)


Lesenswert?

Nicola R. schrieb:
> Im Prinzip funktioniert die schon aber leider geht
> regelmäßig beim anschließen der Spannungsversorgung auf kurz oder lang
> der Tiny kaputt oder verliert seine Programmierung.

Kann gut daran liegen, daß Du viele Ausgänge im Kurzschluß betreibst.
Aber auch J2 kann gefährlich sein, wenn da Spannung vor oder nach VCC 
(J5) anliegt.
Daß die Stufe mit Q1 überflüssig ist, wurde ja schon gesagt. Ohne VCC 
kann auch aus PB4 nichts rauskommen.

von Peter D. (peda)


Lesenswert?

Stephan schrieb:
> Da wären bei Vcc=5V immer noch beide Transistoren permanent
> durchgeschaltet.

Nö.
Wenn PB4 auf low geht, leitet er den Strom von R1 ab und Q2 sperrt. Q1 
arbeitet dabei invers (C,E vertauscht).
Wenn man in der Software PB4 nur zwischen "Pullup on" und "Output low" 
umschaltet, wird der MC auch nicht überlastet.

von Stephan (stephan_h623)


Lesenswert?

Peter D. schrieb:
> Nö.
> Wenn PB4 auf low geht, leitet er den Strom von R1 ab und Q2 sperrt. Q1
> arbeitet dabei invers (C,E vertauscht).
> Wenn man in der Software PB4 nur zwischen "Pullup on" und "Output low"
> umschaltet, wird der MC auch nicht überlastet.

Stimmt. Aber reichlich verzwickt das zu erkennen.
Und ganz schön tricky in der Ansteuerung. Müsste dann ja DDR und OUT 
immer in der passenden Reihenfolge geschaltet werden sonst gibt es 
wieder Kurzschluss.

Und funktioniert dann trotzdem nicht. Weil PB4 beim Reset auf jeden Fall 
hochohmig (um 100k oder unendlich) ist und damit Q2 beim Reset auf jeden 
Fall einschaltet. Erst wenn PB4 niederohmig LOW ist wird Q2 
abgeschaltet.
Und mit 1k zwischen PB4 und dem Kollektor von Q1 lässt sich Q2 auch 
nicht abschalten.

von Nicola R. (nicola_r)


Lesenswert?

Jetzt hab ich einige der "Verbranden" Tiny´s auf die Digispark wieder 
aufgelötet und die lassen sich zum Teil auch wieder Programmieren. Die 
Tiny´s haben einen USB-Bootblock der zuerst geladen wird und erst nach 
einigen Sekunden das eigentliche Programm abläuft. Auf PB3 liegt unter 
anderem USB+. Da liegt bei meiner Schaltung die Funknetzbereitschaft-LED 
an und hat im Betrieb 1,7V die relativ stabil sind. Ich kann mir 
vorstellen das die Spannung, vom Tiny beim Bootprozess, als Eingabe 
interpretiert wird und dadurch dann bei meinem Programm der Bootsecktor 
zerstört wird oder sonst was passiert.

Tatsache ist, dass wenn der Router ausgeschaltet ist und mit der 
Stromversorgung verbunden wird startet der Router einwandfrei. Lass ich 
die Stromversorgung angeschlossen und schalte den Router manuell aus, 
wird das von der Schaltung zuverlässig erkannt und sie startet den 
Router wieder. Beides hab ich mehrmals, geschätzt 200 mal, ausprobiert 
und es funktioniert einwandfrei. Nur wenn der Router im Betrieb ist und 
es wird die Stromversorgung unterbrochen und wieder hergestellt versagt 
die Schaltung nach einigen Wiederholungen.

Ich werde mir jetzt erst mal einen Programmer besorgen und die Tiny´s 
dann ohne den USB-Bootsektor umprogrammieren. Da hab ich aber keine 
Ahnung davon und muss ich mich erst einarbeiten.

Ich werde weiter berichten.

Danke und Grüße

von Stefan F. (Gast)


Lesenswert?

Nicola R. schrieb:
> Ich werde mir jetzt erst mal einen Programmer besorgen und die Tiny´s
> dann ohne den USB-Bootsektor umprogrammieren. Da hab ich aber keine
> Ahnung davon und muss ich mich erst einarbeiten.

Siehe dazu http://stefanfrings.de/isp_programmieradapter/

von Nicola R. (nicola_r)


Angehängte Dateien:

Lesenswert?

Hallo,
Danke für den Link. Er hat mir sehr geholfen. Ich hab mir gleich den 
Programer bestellt und er war auch schon gestern da. In der Zwischenzeit 
hab ich für einen Stesstest einen Testaufbau mit einem Tasmota-Relais 
aufgebaut, dass einen Stromausfall alle 3 Minuten simuliert. Das 
Umflashen des Tinys war kein Problem. Alle verbrannten Tiny´s konnten 
mit dem Programer wieder aktiviert werden.

Q1 hab ich wieder entfernt. Den hatte ich nur aus reiner Verzweiflung 
eingebaut.

Der Stresstest ist jetzt 24 Stunden durchgelaufen. Und BINGO alles läuft 
wie es soll und das ohne Auffälligkeiten, in allen Szenairien.

Jetzt werde ich mich damit beschäftigen, eine Platine für die Schaltung 
herzustellen, die in den Router passt. Als Basismaterial will ich 
Flexfolie oder eine sehr dünnes Basismaterial verwenden. So wie es jetzt 
ist, ist es mir vom Aufbau her nicht ausfallsicher genug.

Danke an alle und Grüße

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
Noch kein Account? Hier anmelden.