Forum: Mikrocontroller und Digitale Elektronik ATTiny10 programmieren klappt nur ohne Led


von F. F. (foldi)


Angehängte Dateien:

Lesenswert?

Tach zusammen!

Habe vorhin die Teile vom Guloshop bekommen und nun mal einen ATTiny10 
zum probieren mit bestellt.

Löten war ein bisschen fummelig, aber es klappte dann doch. Auch das 
Programm ist drauf (Blink, Blink). Das Programmieren klappte, aber nur 
ohne die Led angeschlossen zu haben.
Kann es sein, dass der Lackdraht zu dünn ist (0,05)?
Hat jemand eine Idee?

von Hubert G. (hubertg)


Lesenswert?

Wie wäre es mit einem Schaltplan? Es weiß niemand was du zusammengelötet 
hast.

von F. F. (foldi)


Lesenswert?

Hubert G. schrieb:
> Wie wäre es mit einem Schaltplan? Es weiß niemand was du zusammengelötet
> hast.

Da ist ja nichts dran. Eingang +, Diode (Falschpolschutz), KY5050, 100nF 
Stützkondensator und dann der Tiny. Masse ist klar.
Pfostenstecker für den TPI Anschluss. Die Led hängt an PB0, 680Ohm nach 
Masse.

Da ist auch keine Querverbindung, das hab ich alles gemessen und auch 
alle Verbindungen zum Pfostenstecker sind da.

von Thomas E. (thomase)


Lesenswert?

F. Fo schrieb:
> Pfostenstecker für den TPI Anschluss. Die Led hängt an PB0, 680Ohm nach
> Masse.

PB0 ist auch TPIDATA. Wahrscheinlich mag der Programmer das nicht. 
Schliess die LED an PB2 an. Dann müsste es gehen.

mfg.

von Oliver R. (orb)


Lesenswert?

Womit programmierst Du?

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Thomas Eckmann schrieb:
> PB0 ist auch TPIDATA. Wahrscheinlich mag der Programmer das nicht.
> Schliess die LED an PB2 an. Dann müsste es gehen.

Hallo – denke auch, dass das der Grund ist. Es liegt wahrscheinlich 
sogar weniger am Programmer als am Programmierverfahren. TPIDATA wird 
beim Programmieren für Input und für Output verwendet. Der Programmer 
arbeitet dafür nach dem Open-Collector-Prinzip und verwendet einen 
relativ hohen Pullup-Widerstand. Gegen die 680 Ohm kommt der nicht an.

Ich würde auch einen anderen Pin für die LED verwenden, wenn 
gleichzeitig programmiert werden soll. Vielleicht geht es aber auch, 
wenn du die LED nicht gegen Masse, sondern gegen VCC schaltest.

P.S.:
Die 5-mm-LED neben dem Floh schaut erschreckend groß aus. Schönes Bild! 
:-)

: Bearbeitet durch User
von F. F. (foldi)


Lesenswert?

So, bin wieder da.
Ja genauso wird es sein.
Ich programmiere mit dem AVR MkII.
Hab die Led dann an PB2 gemacht, dann geht es. Dann habe ich noch eine 
Led an PB0 gemacht. Mal ne 3mm und das selbe Problem.

Gut diese Erfahrung gemacht zu haben.
Momentan weiß ich noch nicht, ob ich die restlichen Tinys noch verwenden 
werde. Ist doch alles ziemlich klein. Halb so groß wie ein Tiny13 (DIP), 
dann wäre das meins, aber so, ganz schön fummelig.

Vielleicht profitiert ja noch wer von dieser Erkenntnis.

Eigentlich dürfte das gar nicht passieren, da über den Reset die 
Programmierung eingeleitet wird.
Wie auch immer. Entweder man hat da einen Taster oder ähnliches dran 
oder man muss da einen Schalter oder Jumper vorsehen, wenn man 
programmieren will.

von c-hater (Gast)


Lesenswert?

F. Fo schrieb:

> Eigentlich dürfte das gar nicht passieren, da über den Reset die
> Programmierung eingeleitet wird.

Das ist doch Unsinn.

Ähnlich sinnvoll wäre es etwa, bei einem Auto die Batterie durch eine 
Knopfzelle zu ersetzen, dann festzustellen, daß beim Drehen am 
Zündschlüssel der Motor nicht anspringt und dann zu sagen: "Das dürfte 
gar nicht passieren, da über die Zündschlüsseldrehung der Motor 
gestartet wird"

von F. F. (foldi)


Lesenswert?

c-hater schrieb:
> F. Fo schrieb:
>
>> Eigentlich dürfte das gar nicht passieren, da über den Reset die
>> Programmierung eingeleitet wird.
>
> Das ist doch Unsinn.

Ja ok, stimmt. Erst denken, dann schreiben.
:-)

von F. F. (foldi)


Lesenswert?

Mal eine weitere Frage indirekt zum Thema.

Man kann ja den RESET deaktivieren und zurück setzt man den mit 12Volt.

Die Frage ist, wenn man den AVR MKII so dran lässt und 12 Volt auf den 
RESET legt, kann das der Programmer ab? Hat das schon mal jemand 
gemacht?

von Hannes L. (hannes)


Lesenswert?

F. Fo schrieb:
> wenn man den AVR MKII so dran lässt und 12 Volt auf den
> RESET legt, kann das der Programmer ab?

Die 12V legt der Programmer an den Reset-Pin, niemand Anderes hat das 
Recht dazu. Ob der AVR-ISP HVSP kann, weiß ich aber nicht. Und ob's Dein 
Tiny10 kann, auch nicht. Mein Dragon, mein STK500 und die von mir 
verwendeten AVRs können HVSP bzw. HVPP.

...

von F. F. (foldi)


Lesenswert?

Hannes Lux schrieb:
> F. Fo schrieb:
>> wenn man den AVR MKII so dran lässt und 12 Volt auf den
>> RESET legt, kann das der Programmer ab?
>
> Die 12V legt der Programmer an den Reset-Pin, niemand Anderes hat das
> Recht dazu. Ob der AVR-ISP HVSP kann, weiß ich aber nicht. Und ob's Dein
> Tiny10 kann, auch nicht. Mein Dragon, mein STK500 und die von mir
> verwendeten AVRs können HVSP bzw. HVPP.
>
> ...

Der Tiny10 braucht 12 Volt auf dem Reset um wieder umgestellt werden zu 
können. Der MKii kann das nicht. Jetzt ist die Frage, kann man "von 
außen" 12 Volt auf den Pin geben und kann das der Programmer ab.
Es steht nur geschrieben, dass der nur mit 12 Volt zurück gesetzt werden 
kann.
Sonst müsste man vielleicht eine Hilfsschaltung mit einem PNP bauen.

von Klaus-Dieter (Gast)


Lesenswert?

Du musst einen npn verwenden. Basis übereit 10k an avrspireset. 
Ermittler an Masse. Collector über 1k an +12V und an reset vom Attiny10.

von F. F. (foldi)


Lesenswert?

Klaus-Dieter schrieb:
> Du musst einen npn verwenden. Basis übereit 10k an avrspireset.
> Ermittler an Masse. Collector über 1k an +12V und an reset vom Attiny10.

Aber im TPI Modus gibt der MKii doch ein Minus an den Reset.
Brauche ich da nicht einen PNP

von Peter Z. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Foldi,

im Datenblatt steht, das man zwei Möglichkeiten hat,
entweder ist der ATtiny10-Reset die ganze Zeit auf 0V,
oder wenn man den RSTDISBL verfummelt hat dann soll man den 
ATtiny10-Reset auf +12V bringen um ihn wiederzubeleben.
Ich habe dazu eine kleine Schaltung entworfen, die zwischen 
AVRISP-MKII-Reset und den Reset-Pin des ATtiny10 kommt.

AVRISP-MKII-Reset = 5V     => Reset-Pin des ATtiny10 = 5V
AVRISP-MKII-Reset = 0V     => Reset-Pin des ATtiny10 = 12V

von F. F. (foldi)


Lesenswert?

Peter Zz schrieb:
> Hallo Foldi,
>
> im Datenblatt steht, das man zwei Möglichkeiten hat,
> entweder ist der ATtiny10-Reset die ganze Zeit auf 0V,
> oder wenn man den RSTDISBL verfummelt hat dann soll man den
> ATtiny10-Reset auf +12V bringen um ihn wiederzubeleben.
> Ich habe dazu eine kleine Schaltung entworfen, die zwischen
> AVRISP-MKII-Reset und den Reset-Pin des ATtiny10 kommt.
>
> AVRISP-MKII-Reset = 5V     => Reset-Pin des ATtiny10 = *5V*
> AVRISP-MKII-Reset = 0V     => Reset-Pin des ATtiny10 = *12V*

Habe ich auch im Datenblatt gelesen. Von "verfummelt" kann nicht 
unbedingt reden, kann ja auch sein, dass man diesen Pin auch braucht.

Wieso hast du zwei Transistoren da drin?

Meine Idee war, den Reset an einen PNP (oder entsprechenden Fet) 
anschließen und die 12 Volt dadurch auf den Reset leiten. Das müsste 
doch auch gehen, oder?

: Bearbeitet durch User
von Peter Z. (Gast)


Lesenswert?

F. Fo schrieb:
> Habe ich auch im Datenblatt gelesen. Von "verfummelt" kann nicht
> unbedingt reden, kann ja auch sein, dass man diesen Pin auch braucht.

Ich brauch diesen Pin auch, die Formulierung "verfummeln" war etwas 
unglücklich gewählt.


> Wieso hast du zwei Transistoren da drin?
>
> Meine Idee war, den Reset an einen PNP (oder entsprechenden Fet)
> anschließen und die 12 Volt dadurch auf den Reset leiten. Das müsste
> doch auch gehen, oder?

hast du deine Variante schon getestet?
Mal mal ein Schaltbild.

von F. F. (foldi)


Angehängte Dateien:

Lesenswert?

Peter Zz schrieb:

> hast du deine Variante schon getestet?
> Mal mal ein Schaltbild.

Getestet noch nicht, habe aber schon mal den Schaltplan gezeichnet.

von Peter Z. (Gast)


Lesenswert?

Hast du auch schön gezeichnet, würde aber nicht funktionieren weil:
Der Transistor arbeitet in deinem Schaltplan in Collector-Schaltung.
Was passieren würde ist, das der Transitor dort eine 
Spannungsverstärkung kleiner gleich 1 hat. Wenn also an Pin5 des 
Steckers der Reset-Pin auf High (5V) geht, kriegt der ATtiny davon sogar 
nur 4,35V ab.
Schau dir mal ein Tutorial über die Grundschaltungen mit Transitoren an.

von F. F. (foldi)


Lesenswert?

Peter Zz schrieb:
> Schau dir mal ein Tutorial über die Grundschaltungen mit Transitoren an.

Das ist aus dem Tutorial:

########################################################################

PNP/NPN als Schalter, wohin mit der Last?

Für viele einfache Anwendungen kann man sich merken: Bei 
Schaltanwendungen darf der Basisstrom nicht durch die Last fließen. 
Normalerweise kommt dabei die Emitterschaltung zum Einsatz, die Last 
kommt also an den Kollektor.

 Vcc o-------------+                  Vcc o-----------+
                   |                                  |
                  .-.               An: GND   _   |<
                  | | R_Last             o---|___|--|   PNP
                  '-'               Aus: Vcc        |\
                   |                                  |
An: Vcc  _     |/                                  .-.
    o---|___|----|   NPN                      3>       | | R_Last
Aus: GND         |>                                  '-'
                   |                                  |
 GND o-------------+                  GND o-----------+
######################################################################## 
##

Wenn der Reset Pin des Tiny10 also mit 12Volt versorgt werden soll, dann 
muss von diesem Reset Pin eine Verbindung intern zur Masse bestehen.

Da ich einen PNP Transistor genommen habe, entspricht die Zeichnung im 
Grunde dem Schaltbild rechts.
Liege ich da falsch?
Gut, ein Pullup könnte da noch nötig sein.
Was mir da verloren geht an Spannung, das drehe ich dann am 
Labornetzteil hoch. :-)

: Bearbeitet durch User
von Hubert G. (hubertg)


Lesenswert?

Die Schaltung mit dem pnp funktioniert aber nur wenn VCC auch nur 5V 
ist. Bei VCC 12V und 5V an der Basis, kannst du den Transistor nicht 
sperren.
In deiner ersten Schaltung hast du den Transistor verkehrt 
eingezeichnet. Emitter an +12V, funktioniert aber auch nicht wenn er mit 
5V angesteuert wird.

von F. F. (foldi)


Angehängte Dateien:

Lesenswert?

Ja stimmt, war falsch herum.

War ja schon fast zwei Uhr.

Trotzdem verstehe ich nicht, wieso ich den nicht schalten können soll.
Will das nachher mal aufbauen und testen.

Es ist doch das gleiche Potential. Also beide haben die selbe Masse.

: Bearbeitet durch User
von Hubert G. (hubertg)


Lesenswert?

Die Spannung an der Basis ist vom Emitter gesehen entweder -7V oder 
-12V, zum sperren sollte sie aber 0V sein.

von F. F. (foldi)


Lesenswert?

Hubert G. schrieb:
> Die Spannung an der Basis ist vom Emitter gesehen entweder -7V oder
> -12V, zum sperren sollte sie aber 0V sein.

Bei 0Volt sollte der Transistor schalten, da es ein PNP ist.

Gut, sollte das nicht funktionieren, dann kommt noch ein Optokoppler da 
rein, dann geht das auf jeden Fall.

: Bearbeitet durch User
von Hubert G. (hubertg)


Lesenswert?

Du musst es für den pnp aber von den +12V aus sehen, da sind 0V dann 
-12V und die 0V die du meinst sind +12V.
Einschalten tut er ja auch, aber nicht mehr ausschalten.

von Dietrich L. (dietrichl)


Lesenswert?

F. Fo schrieb:
> Trotzdem verstehe ich nicht, wieso ich den nicht schalten können soll.

Weil Du mit +5V an der Basis (Pin 5 des ISP-Anschlusses) den Transistor 
T1 nicht sperren kannst. Bei +5V an der Basis ist der Emitter auf ca. 
5,7V, d.h. durch R1 fließt ein Strom von (12V - 5,7V) / R1. Und dieser 
Strom (etwas weniger, da geht der Basisstrom noch ab) fließt auch am 
Kollektor.

Du brauchst eine Pegelwandler, eine Schaltung gab es ja schon oben.

Gruß Dietrich

PS: Schreib im Schaltplan statt -12V lieber 0V oder GND. Sonst könnte 
man meinen, zwischen +12V und -12V läge eine Spannung von 24V!

: Bearbeitet durch User
von Jon M. (jontle)


Lesenswert?

Hallo,
es reicht, einfach 12V händisch an den Resetpin zu legen, das ist nicht 
zeitkritisch. Also 12V an, programmieren, 12V wieder aus.
Natürlich die Resetleitung des Programmers abhängen.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Jon Merten schrieb:
> Hallo,
> es reicht, einfach 12V händisch an den Resetpin zu legen, das ist nicht
> zeitkritisch. Also 12V an, programmieren, 12V wieder aus.
> Natürlich die Resetleitung des Programmers abhängen.

Hallo - hast du das selbst ausprobiert? Das wär wirklich eine feine 
Sache, weil man die ATtiny10 dann ohne Gewissensbisse mit 4 I/O-Pins 
nutzen könnte.

Ansonsten helfen wahrscheinlich nur 2 Transistoren (NPN und PNP), wie 
schon dargestellt. Vielleicht gibts noch einen Trick mit einer 
Basis-Schaltung? Hab noch nicht näher drüber nachgedacht.

Zum ursprünglichen Thema mit der LED: Wahrscheinlich stellt sich das 
Problem gar nicht, wenn man die LED nicht gegen GND, sondern gegen VCC 
schaltet.

von Jon M. (jontle)


Lesenswert?

Markus Weber schrieb:
> Jon Merten schrieb:
>> Hallo,
>> es reicht, einfach 12V händisch an den Resetpin zu legen, das ist nicht
>> zeitkritisch. Also 12V an, programmieren, 12V wieder aus.
>> Natürlich die Resetleitung des Programmers abhängen.
>
> Hallo - hast du das selbst ausprobiert?

Ja, zwar mit einem LUFA AVR ISP mkII Klon, aber das sollte ja keine 
Rolle spielen. Und zur Sicherheit die 12V über einen 10k (lag grade da 
rum) Widerstand angelegt, wobei ich nicht glaube, dass der wirklich 
nötig ist.

von F. F. (foldi)


Lesenswert?

Tach Jungs!

Leuchtet mir ein. Man sollte auch früher versuchen ins Bett zu kommen 
und dann ohne Elektronik und Computer.

@Dietrich, Hubert, Peter, danke fürs Aufwecken. Ja klar, das ist alles 
richtig. Ich muss einfach mehr und ohne solche Pausen basteln.

@Markus
Zunächst mal danke für deine wahnsinnig schnellen Lieferungen. Dieses 
Mal dachte ich erst, "Na, hat er die Tinys vergessen?", aber dann fand 
ich diese winzigen Dinger. Ich war schon ziemlich erschreckt wie klein 
die sind.
Aber irre geil, dass sowas ein µC ist und programmiert werden kann.
Und mit der "gedrehten" Led müsste das klappen.


@Jon
Der AVR MKii sollte das nicht können, da er die Spannung über den Reset 
misst (Datenblatt MKii) und so übers Studio gar nicht erst in den 
Programmiermodus gelangt.

@all
Was ist den wenn ich den PNP nehme und damit einen Optokoppler schalte, 
der dann die 12 Volt auf den Pin legt?

Ob man allerdings die "vielen" Pins wirklich alle braucht.
Eine Anwendung wäre, dass so ein Tiny10 eine Taschenlampe nach 1 Stunde 
abschaltet (weil ich das öfter mal vergesse) oder als Dimmer und da 
brauch man nicht wirklich viele Pins.
Für solche und ähnliche Sachen würde ich die gern nehmen.

von F. F. (foldi)


Angehängte Dateien:

Lesenswert?

Besser so?

von F. F. (foldi)


Lesenswert?

Hab jetzt noch einen Jumper dazwischen gesetzt, obwohl das nicht nötig 
ist.
Da man dann ja direkt mit dem MKii programmieren kann.
Werde das natürlich als "Zwischenadapter" ausführen.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

F. Fo schrieb:
> Besser so?

Schaut gut aus, aber ich glaub, du hast die Logik umgekehrt.
Normalerweise sollte RESET genau dann auf 12 Volt gehen, wenn es der 
Programmer von 5 Volt auf 0 Volt runterzieht. In deiner Schaltung wäre 
das umgekehrt – glaub ich. Im Zweifel mal auf einer Steckplatine 
aufbauen. Oder simulieren, z.B. mit LT-Spice.

Am einfachsten ist wahrscheinlich das, was Jon empfohlen hat: RESET von 
Hand auf 12 Volt legen (nur den Pin des ATtiny10, nicht den 
RESET-Anschluss des Programmers).

Wenn du trotzdem eine Logik in den Adapter bauen willst, dann könntest 
du es noch mit dem Trick probieren, den wir im "HVSP Fusebit Programmer" 
ausgenutzt haben:

1 PNP-Transistor mit
- +12 Volt am Emitter
- RESET des Targets am Kollektor (mit Schutzwiderstand, z.B. 1 kOhm)
- eine 10-Volt-Z-Diode an der Basis

1 10-Volt-Z-Diode mit
- Basis des Transistors an der Kathode
- RESET-Leitung des Programmers an der Anode (mit Vorwiderstand, z.B. 1 
kOhm)

von Martin S. (sirnails)


Lesenswert?

F. Fo schrieb:
> Besser so?

Der 7805 sieht falsch herum aus.

von F. F. (foldi)


Angehängte Dateien:

Lesenswert?

Markus Weber schrieb:
> Schaut gut aus, aber ich glaub, du hast die Logik umgekehrt.
> Normalerweise sollte RESET genau dann auf 12 Volt gehen, wenn es der
> Programmer von 5 Volt auf 0 Volt runterzieht. In deiner Schaltung wäre
> das umgekehrt – glaub ich. Im Zweifel mal auf einer Steckplatine
> aufbauen. Oder simulieren, z.B. mit LT-Spice.

Ja du hast recht. Ich muss einfach mal mehr schlafen, dann sehe ich das 
auch wieder selbst.

Jetzt mal mit OK und 7805 richtig rum.

: Bearbeitet durch User
von Martin S. (sirnails)


Lesenswert?

Nochmal etwas zu Deinen Zeichenkünsten: Mach bitte alle Eingänge nach 
links, alle Ausgänge nach rechts. Das ist mehr oder minder eine 
Konvention, an der sich jeder orientiert (solange er kein Araber ist) :)

Dann drehe bitte noch Deine ICs, dass sie gerade sind, und nicht im 90° 
Winkel herum hängen.

Also: 7805 ganz nach links, Tiny daneben, Optokoppler neben den Tiny und 
die Ausgangsbuche ganz nach rechts. Dann kannst Du die 5V direkt dran 
anschließen und dann ist das ganze schon viel leserlicher.

von F. F. (foldi)


Lesenswert?

Ja Martin, das stimmt. Schön ist das nicht. Hab das gerade in meiner 
Pause geändert, das andere hatte ich spät abends oder nachts gemacht.
Mir ging es eher um die Funktion, als um die Optik.

Zunächst muss ich mich noch etwas mit den Pegelwandlern beschäftigen. Da 
ich aber auch noch ein paar OK hier habe, kann ich das ja mal so machen.
Ist sicher die beste Lösung.

Werde das auch noch mal richtig gescheit zeichnen.
So, nun muss ich wieder weiter.

von Peter Z. (Gast)


Lesenswert?

@Foldi:

Was gefällt dir an meinem Schaltbild (MKII_Reset_to_12V.png ) nicht?
Probier es doch einfach mal aus.  :-)

von Davis (Gast)


Lesenswert?

T2 Emitter ist mit +12 verbunden.

von Dietrich L. (dietrichl)


Lesenswert?

Bezug: TPI_12Volt_Programming_OK.png

Davis schrieb:
> T2 Emitter ist mit +12 verbunden.

Nicht nur das, auch die LED ist falsch rum (d.h. der ganze Optokoppler 
muss gespiegelt werden).

Gruß Dietrich

von F. F. (foldi)


Angehängte Dateien:

Lesenswert?

Letzteres habe ich selbst gesehen.
Ich glaube jetzt sieht es auch besser aus.

Jetzt ist nur noch wichtig zu wissen wie hoch (oder eher mit wie wenig) 
Strom der Reset belastet werden soll.
Im allen Datenblättern fand ich nichts dazu. Weiß das jemand?

: Bearbeitet durch User
von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

F. Fo schrieb:
> Ich glaube jetzt sieht es auch besser aus.

Kommt natürlich auf den Programmer an, aber normalerweise wird das 
Target entweder extern oder durch den Programmer mit 5 Volt 
versorgt. Ich weiß nicht, wie das in deinem Fall korrekt wäre...

> Jetzt ist nur noch wichtig zu wissen wie hoch (oder eher mit wie wenig)
> Strom der Reset belastet werden soll.
> Im allen Datenblättern fand ich nichts dazu. Weiß das jemand?

Die Info hab ich auch schon mal gesucht und nicht gefunden. Bin also 
genauso neugierig. :-)
Im Zweifel aber gilt: einfach nachmessen. Viel ist es jedenfalls nicht.

von F. F. (foldi)


Lesenswert?

Markus Weber schrieb:
> Kommt natürlich auf den Programmer an, aber normalerweise wird das
> Target entweder extern oder durch den Programmer mit 5 Volt
> versorgt. Ich weiß nicht, wie das in deinem Fall korrekt wäre...

In der Regel ja "in System", aber ich finde es beim programmieren im 
eigentlichem System sogar ein wenig sicherer, wenn das System als 
solches stromlos ist und im Grunde kommt die Spannung dann ja vom 
Programmer.

Da ich den AVR MKii verwende, brauche ich ja irgendwoher Strom und das 
habe ich auch schon vorher so gemacht, dass ich eine kleine Platine 
dazwischen hatte und dann auf auf so einen Multi-Zif-Sockel-Adapter 
ging.

Zu dem Strom habe ich eine "indirekte Antwort" gefunden.

Im "Atmel AVR042: AVR Hardware Design Considerations [APPLICATION NOTE]
2521L−AVR−07/2013" auf Seite 6 sind zwei Beschaltungen, mit 
vorhergehender Erklärung gelistet.
Da ist der Resetpin mit 330 Ohm beschaltet, aber als Reset mit Schalter.
Weiter steht da, dass zum programmieren mit dem STK500 ein 4,7kOhm 
Pullup empfohlen wird und dass der Pullup nicht zu stark (in diesem Fall 
ist aber zu klein gemeint) sein soll, damit das STK500 den AVR (gilt 
grundsätzlich für alle AVR's) noch sicher auf Gnd ziehen kann.

Das ist alles auf 5 Volt bezogen, ich denke ich würde ich bei 12 Volt 
einfach mal einen 10 kOhm Widerstand nehmen.
Sollte es damit nicht gehen, dann muss man halt runter gehen.

Jon scheint wohl recht zu haben, den es ist nicht zeitkritisch. Ob Low 
Pegel oder 12 Volt, beides ist noch vor jeder Sequenz aktiv.
Also müsste ein Jumper eigentlich reichen.

Das alles bleibt auszuprobieren.

von F. F. (foldi)


Lesenswert?

Peter Zz schrieb:
> Hallo Foldi,
>
> im Datenblatt steht, das man zwei Möglichkeiten hat,
> entweder ist der ATtiny10-Reset die ganze Zeit auf 0V,
> oder wenn man den RSTDISBL verfummelt hat dann soll man den
> ATtiny10-Reset auf +12V bringen um ihn wiederzubeleben.
> Ich habe dazu eine kleine Schaltung entworfen, die zwischen
> AVRISP-MKII-Reset und den Reset-Pin des ATtiny10 kommt.
>
> AVRISP-MKII-Reset = 5V     => Reset-Pin des ATtiny10 = *5V*
> AVRISP-MKII-Reset = 0V     => Reset-Pin des ATtiny10 = *12V*

In soweit ist mir die Schaltung jetzt klar, aber wo kommen die 5 Volt 
für die Basis von dem NPN her?

von F. F. (foldi)


Lesenswert?

Ach so, du lässt den NPN quasi immer auf und erst wenn der Programmer 
den nötigen Minus liefert, dann öffnet der PNP weit genug umd die 12 
Volt für den Reset Pin bereit zu stellen. Sehe ich das so richtig?

von Basisschaltung (Gast)


Lesenswert?

F. Fo schrieb:
> Sehe ich das so richtig?

Nein.
Es gibt für Bipolartransistoren auch andere Betriebsarten als die 
weitverbreitete Emitterschaltung.

MfG

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Es gibt halt viele mögliche Lösungen.
Die einfachste ist wirklich, die 12 Volt manuell anzulegen.

Wenn man es komplizierter will, muss man eine Schaltung bauen. :-)

Eine der einfachsten Schaltungen ist wahrscheinlich diese:

1
+12V ----------------------------------+
2
                                       |
3
                   2,2k   ZD10     |<--+
4
RESET-Ausgang -----===-----|>|-----|      2,2k
5
des Programmers                    |------===----- RESET-Pin
6
                                  PNP              des ATtiny10

Bauteile:
1 PNP-Transistor (z.B. BC327-40)
1 Z-Diode 10 Volt
2 Widerstände je 2,2 kOhm

von F. F. (foldi)


Lesenswert?

Markus Weber schrieb:

> Eine der einfachsten Schaltungen ist wahrscheinlich diese:
>
>
>
1
> +12V ----------------------------------+
2
>                                        |
3
>                    2,2k   ZD10     |<--+
4
> RESET-Ausgang -----===-----|>|-----|      2,2k
5
> des Programmers                    |------===----- RESET-Pin
6
>                                   PNP              des ATtiny10
7
>
>
> Bauteile:
> 1 PNP-Transistor (z.B. BC327-40)
> 1 Z-Diode 10 Volt
> 2 Widerstände je 2,2 kOhm

Das war doch meine erste Schaltung und da sagen alle, dass es so nicht 
geht.
Die zweite Zeichnung war die Korrektur.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

F. Fo schrieb:
> Das war doch meine erste Schaltung und da sagen alle, dass es so nicht
> geht.
> Die zweite Zeichnung war die Korrektur.

Oh – du hattest eine Schaltung mit Z-Diode? Dann hab ich die übersehen, 
sorry.

von F. F. (foldi)


Lesenswert?

Markus Weber schrieb:
> F. Fo schrieb:
>> Das war doch meine erste Schaltung und da sagen alle, dass es so nicht
>> geht.
>> Die zweite Zeichnung war die Korrektur.
>
> Oh – du hattest eine Schaltung mit Z-Diode? Dann hab ich die übersehen,
> sorry.

Ne, die Diode hatte ich nicht da drinnen.
Ups! :-)

Ich will mal, wenn ich mal etwas mehr Zeit habe, das mit einem OK 
machen.
Denke das ist ein guter Weg um zumindest den Progger zu schützen.

Und für abgerauchte Tinys gibt es ja dann dich. :-)

: Bearbeitet durch User
von Dietrich L. (dietrichl)


Lesenswert?

Markus Weber schrieb:
> Eine der einfachsten Schaltungen ist wahrscheinlich diese:

Da fehlt aber noch ein Widerstand zwischen Basis und Emitter des PNP, 
sonst fließt bei Programmer-Reset = +5V noch zu viel Strom über die 
Z-Diode (dort liegen dann 7V an) und sperrt den Transistor nicht 
zuverlässig.

Gruß Dietrich

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Dietrich L. schrieb:
> Da fehlt aber noch ein Widerstand zwischen Basis und Emitter des PNP,
> sonst fließt bei Programmer-Reset = +5V noch zu viel Strom über die
> Z-Diode (dort liegen dann 7V an) und sperrt den Transistor nicht
> zuverlässig.

Was ist "zu viel Strom"? Hab grad mal mein empfindlicheres Ampere-Meter 
rausgekramt und an einer einfachen 10-Volt-Z-Diode gemessen (eine aus 
einem Sortiment) gemessen: sie öffnet ganz langsam ab ca. 9,5 Volt. Bis 
9,5 Volt fließen weniger als 100 nA.

Hab das zwar jetzt nicht probiert, aber ich nehm an, dass der 
Schalttransistor bei einem solch geringen Strom noch nicht öffnet.

von F. F. (foldi)


Angehängte Dateien:

Lesenswert?

Wer es noch gebrauchen kann ...
Ob das so mit den Widerständen funktioniert, das muss ich noch testen. 
Werde es dann berichten. Vielleicht baue ich das nächste Woche.

: Bearbeitet durch User
von Dietrich L. (dietrichl)


Lesenswert?

Markus Weber schrieb:
> Hab das zwar jetzt nicht probiert, aber ich nehm an, dass der
> Schalttransistor bei einem solch geringen Strom noch nicht öffnet.

Das Problem ist, Du kannst das kaum sauber berechnen. Alle Werte haben 
Exemplarstreuungen und sind temperaturabhängig: Reststrom Z-Diode, 
Sperrstrom Kollektor-Basis (CB), Sperrstrom Kollektor-Emitter (CE)  und 
Verstärkung des Transistors (der vorgeschlagene BC327-40 kann eine 
Verstärkung von über 600 haben!).
Und Du weißt nicht, wieviel Strom der Reset-Eingang bei 12V tatsächlich 
braucht

Kollektorstrom = ((Reststrom Z-Diode + Reststrom CB) * Verstärkung) + 
Reststrom CE

Zusammengefasst: Ich würde in jedem Fall einen Widerstand zwischen Basis 
und Emitter einbauen (z.B. 10k) - das kostet (fast) nichts und macht das 
Verhalten überschaubarer.
Um es ganz perfekt zu machen, könnte man dann noch ein Widerstand 
zwischen Kollektor und GND spendieren, um den Reststrom CE abzuleiten 
:-)
Gruß Dietrich

von F. F. (foldi)


Lesenswert?

F. Fo schrieb:
> Wer es noch gebrauchen kann ...
> Ob das so mit den Widerständen funktioniert, das muss ich noch testen.
> Werde es dann berichten. Vielleicht baue ich das nächste Woche.

Auf dem Papier ist das immer ganz einfach, aber in der Realität sieht es 
dann anders aus.
der linke Pfostenstecker ist verkehrt.
Ich ändere das noch.

von F. F. (foldi)



Lesenswert?

F. Fo schrieb:
> Auf dem Papier ist das immer ganz einfach, aber in der Realität sieht es
> dann anders aus.
> der linke Pfostenstecker ist verkehrt.
> Ich ändere das noch.

Dürfte jetzt richtig sein.

von Peter Z. (Gast)


Lesenswert?

F. Fo schrieb:
> Dürfte jetzt richtig sein.

Und? geht es jetzt?
Deine Schaltung mit dem Optokoppler macht aus
0V  =>  12V
5V  =>  0V
Funktioniert das so, wie verhält sich der ATtiny10?

von F. F. (foldi)


Lesenswert?

Peter Zz schrieb:
> F. Fo schrieb:
>> Dürfte jetzt richtig sein.
>
> Und? geht es jetzt?
> Deine Schaltung mit dem Optokoppler macht aus
> 0V  =>  12V
> 5V  =>  0V
> Funktioniert das so, wie verhält sich der ATtiny10?

Hallo Peter,

hatte noch keine Zeit das aufzubauen. Außerdem wollte ich auch noch 
einen einzelnen OK dafür und nicht einen mit mehreren (die hab ich hier) 
"verbraten".
Nächste Woche wird das auch nichts, da bin ich zum Skilaufen.

Sobald ich das gemacht habe, werde ich hier was posten.
Muss mal sehen, ob ich noch zwei Stecker habe, dann mache ich das 
vielleicht gleich noch.

: Bearbeitet durch User
von F. F. (foldi)


Lesenswert?

Peter Zz schrieb:
> Und? geht es jetzt?

Die Antwort lautet erstmal nein. Hab immer mal in der Woche etwas daran 
gemacht, immer nur Minuten. Irgendwas habe ich dabei verwurstet. Erst 
funktioniert das einmal, dann nicht mehr.
Dachte ich hätte den µC gekillt.

Hat mir aber trotzdem keine Ruhe gelassen. Wie ein Vorposter schon mal 
geschrieben hat, kann man einfach 12 Volt auf den Reset legen und gut.

Hab also einen neuen µC aufgelötet, einen Jumper und mal mit 12 Volt und 
mal im Normalmodus programmiert.

Als Widerstand hab ich den ziemlich hart mit 1kOhm beschaltet.
Wenn ihr also den Tiny10 mit abgeschalteten Reset braucht, den wieder 
zurück zu setzen ist kein Problem.

von Gerald G. (Gast)


Lesenswert?

also kann man die fuses für den resetpin wieder rücksetzen ohne einen 
highvoltage programmer?

hatte nämlich bei nem tiny den pin gebraucht, und dachte alles 
funktioniert und die fuse geändert. Allerdings musste ich natürlich 
trotzdem etwas ändern.

In Ermangelung eines HVProgrammers, wollte ich ihn eigentlich wegwerfen, 
brachte es aber nicht übers Herz und habe ihn als Mahnmal am 
Schreibtisch liegen.

Also einfach 12 Volt an den Resetpin vom tiny, die resetleitung weg 
lassen, und dann fuses schreiben?

von F. F. (foldi)


Lesenswert?

Gerald G. schrieb:
> Also einfach 12 Volt an den Resetpin vom tiny, die resetleitung weg
> lassen, und dann fuses schreiben?

Ja, ganz genau so.
Habe gerade noch mal das alles neu aufgebaut (Bild kommt noch, wenn es 
jemand sehen möchte.

Jetzt hab ich das so gemacht, dass ich zwei Stecker nebeneinander 
angeordnet habe und alle Pins, außer dem Resetpin, zu einander mit 
Drahtbrücken verbunden habe (auf Streifenrasterplatine) und den Resetpin 
habe ich auf einen dreipoligen Kippschalter gelegt. Auf der 12 Volt 
Seite habe ich noch eine Led mit angebracht, damit man sieht, ob nun der 
12 Volt Modus oder der normale Modus an ist.

Bin mir nicht sicher und habe heute Nacht auch keine Lust mehr zu 
gucken, aber sicher lassen sich so auch andere µC's wieder in Betrieb 
nehmen.
Das wäre dann eine ganz günstige Methode einen ISP Programmer in einen 
HV Programmer zu verwandeln.
Werde das mal am Steckbrett probieren und wenn das klappt, mach im mal 
ein Layout dafür fertig.
Ich habe zwar zwei Drachen, einen immer für HV und einen immer für ISP, 
aber das würde alles etwas einfacher machen.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Gerald G. schrieb:
> also kann man die fuses für den resetpin wieder rücksetzen ohne einen
> highvoltage programmer?

Das ist eine gute Nachricht, danke euch beiden für die Tests!

Wahrscheinlich klappt das aber wirklich nur beim ATtiny10 und nicht bei 
den anderen gängigen Tinys wie ATtiny13A, ATtiny85, ATtiny84A usw.

Der ATtiny10 nutzt das Programmierverfahren TPI, das anscheinend für 
normale Programmierspannung und für HV das Gleiche ist.
Bei ISP und HVSP ist das leider nicht so. Keine Ahnung, ob es dann 
trotzdem irgendwie geht, manchmal funktioniert ja auch etwas, das nicht 
in der Doku steht. Aber die Chancen sind eher gering... leider. :-(

von F. F. (foldi)


Lesenswert?

Hallo Markus, gestern hatte ich nicht mehr die Kraft da nach zu sehen, 
aber ich erinnere mich, dass beim Tiny 13 deutlich mehr Kabel auf den 
Adapter mussten. Es ist schade, dass es nicht so einfach wird und auch 
schade, dass Atmel das so handhabt mir ihrer Programmierung.

von F. F. (foldi)


Angehängte Dateien:

Lesenswert?

So, aus dem Urlaub zurück, konnte ich nun den Programmieradapter testen.

Da es nun wesentlich einfacher ist, es mit einem Schalter zu 
realisieren, habe ich das auch so gemacht.
Zur Kontrolle, ob die 12 Volt Versorgung auf dem Reset Pin liegt, habe 
ich eine Led dazu geschaltet.
Auch wenn die Spannung bei festen 12 Volt durch die Led und Widerstände 
runter geht, so reicht es hier mit einer 12V/500mA Stromquelle zu 
arbeiten.

Mehrmals habe ich ausprobiert den Rest Pin auszuschalten und wieder 
einzuschalten. Alles geht völlig ohne Probleme.

von F. F. (foldi)


Lesenswert?

Da ich mich mit den zehnkommaetwas Volt schon sehr an der Grenze 
bewegte, habe ich nun einen Transistor dazwischen gebaut und eine low 
current led genommen, nun habe ich bei 12 Volt 11,833 Volt am Reset.

von Martin S. (sirnails)


Lesenswert?

F. Fo schrieb:
> nun habe ich bei 12 Volt 11,833 Volt am Reset.

Du hast knappe 12 Volt am Reset? Lebt er jetzt noch?

von F. F. (foldi)


Lesenswert?

Martin Schwaikert schrieb:
> F. Fo schrieb:
>> nun habe ich bei 12 Volt 11,833 Volt am Reset.
>
> Du hast knappe 12 Volt am Reset? Lebt er jetzt noch?

Lies doch bitte erstmal alles, dann erübrigt sich deine Frage.

von F. F. (foldi)


Lesenswert?

So, nun mal eine Neuigkeit.

Habe heute etwas mit SMD rum probiert und eben mit dem Tiny10. Selbst 
mit Low Current Leds lässt sich der Tiny nicht programmieren.

Daher meine Empfehlung: Wenn ihr die Pins als Ausgänge benutzt, seht für 
die Masse der Pins einen Pfad vor, den ihr dann mittels Jumper zum 
programmieren unterbrechen könnt.
Ich denke dass diese Tinys selbst mit noch weniger als 2mA nicht 
programmierbar sind. Also, Masse ab, zum flashen.

von F. F. (foldi)


Lesenswert?

Noch mal eine neue Erkenntnis.

Wenn ihr mal so einen Tiny10 habt, den könnt ihr quasi immer HV 
programmieren.
Hatte jetzt mal alle Pins benutzt und dann einfach mir 12 Volt geflasht. 
Alles kein Problem.

von F. F. (foldi)


Lesenswert?

Habe mir jetzt so einen Sockel bestellt. Dauert sicher bis der da ist.
Hat noch jemand Interesse an dem Thread? Dann poste ich hier, wenn es 
was neues zu berichten gibt.
Werde eventuell den Sockel nur mit 12 Volt belegen oder die Schaltung 
von oben nehmen.
Auf jeden Fall will ich eine schönes Programmierboard bauen, mit eigener 
Stromversorgung und in jedem Fall HV tauglich.
Denke, wenn man solche kleinen Dinger wie den Tiny10 nimmt, dann will 
man nicht noch einen riesigen Stecker daneben.
Also mal kurz sagen, wenn ich weitere Erfahrungen (die von allgemeinem 
Interesse sein könnten) posten soll, sonst nerv ich jetzt nicht mehr 
damit.

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.