attiny85 Reset Pin

OP #4990932
Lesenswert?

Ich habe ein Chineese attiny85 Platine mit USB Schnittstelle gekauft.
ebay: 332110929888
Ich habe sie mit Digispark Treiber und Digispark Software zum Laufen 
gebracht.
Die USB liegt an pin PB3 und PB4 des Attiny85.
Auf der Platine sind 2 LEDs eine für +5 Volt Anzeige und eine als user 
I/O.

Warum muß man bei der Digispark Software für Arduino die Platine zum 
upload des Programmes
entfernen und wieder anstecken (jedesmal) ?
Das ist schwachsinnig programmiert.

Nächster Fehler:
Warum started das blink Programm
erst nach ca. 3-5-7-17 Sekunden wenn +5 Volt (USB wird eingesteckt) an 
die Platine angelegt ist ?


Mein Programm blink:


// the setup routine runs once when you press reset:

void setup() {

// initialize the digital pin as an output.

pinMode(1, OUTPUT); //LED on Model A

}


// the loop routine runs over and over again forever:

void loop() {

digitalWrite(1, HIGH);

delay(100);               // wait for a 0,1 second

digitalWrite(1, LOW);

delay(100);               // wait for a 0,1 second

}


Einen Schaltplan der Platine habe ich nicht.
Der Reset Pin am Attiny85 ist offen.
Auch wenn er auf +5 Volt gelegt wird ändert sich nichts.
Wird der Reset Pin auf low-high gebracht, so wird ebenso ein delay von 
ca. 3-5-7-17 Sekunden erreicht.
Setzt man den Reset Pin auf low startet das Programm nie.
Muß man etwa eine richtige Reset Schaltung anbauen ?
(Diode Kondensator Widerstand am Reset Eingang ?)
Bis jetzt hatte ich noch nie mit dem Attiny85 zu tun.
Das sind meine ersten 10 Minuten.
OP #4990989
Lesenswert?

Das heißt ich muß den Digispark bootloader im Attiny85 runterschmeißen,
dann über mein AVRUSBmkII Programmiergerät meine Software reinladen ?
Dazu einen 6-pin Adaptersockel für den AVRUSBmkII  auf die Schaltung 
auflöten. Genau das wollte ich nicht.
Diese kleine Platine ist kein Käfer sondern ein Mistkäfer.
Gast #4991131
Lesenswert?

und zwar bleibt der Tiny für die Bootloaderzeit nach dem Einschalten im 
Wartemodus.

Da der Bootloader Opensource ist, könnte man den Bootloader neu 
kompilieren und einen beliebigen Pin als Aktivierung benutzen. Diese 
Option ist schon im Quelltext mit wählbarem Pin vorkonfiguriert.
Gast #4991218
Lesenswert?

> Diese kleine Platine ist kein Käfer sondern ein Mistkäfer.

So ist das eben, wenn man einen µC ohne anständige USB Schnittstelle für 
USB missbraucht. Ich würde das Ding auch nicht benutzen.

Es gibt andere µC mit richtiger USB Schnittstelle, die all diese 
Nachteile nicht haben - kostet aber mehr.

> Da der Bootloader Opensource ist, könnte man den Bootloader neu
> kompilieren und einen beliebigen Pin als Aktivierung benutzen.

Bei nur drei freien Pins wollte der Entwickler genau das sicher nicht 
tun.
#4991747
Lesenswert?

Werner S. schrieb:
> Diese kleine Platine ist kein Käfer sondern ein Mistkäfer.

Ein µC ist eben kein PC.
Auf einem MC kann immmer nur ein Programm zur Zeit laufen.
Der USB-Bootloader ist eben ein Programm und Deine Applikation ein 
anderes. Um nun eine neue Applikation zu laden, muß der Bootloader ran. 
Und das geht eben nur über Wartezeit oder Pinabfrage. Da kann der 
ATtiny85 aber nix dafür.
#4991927
Lesenswert?

Werner S. schrieb:
> Warum muß man bei der Digispark Software für Arduino die Platine zum
> upload des Programmes
> entfernen und wieder anstecken (jedesmal) ?
> Das ist schwachsinnig programmiert.

Ob das wirklich nur an der Programmierung liegt, weiß ich nicht.
Mit dem Start der Applikation geht ja die USB-Verbindung verloren, da 
der Bootloader nicht mehr ausgeführt wird.

Ist quasi wie bei einem USB-Stick. Wenn man Auswerfen gedrückt hat, wars 
das. Ohne Abstecken meldet der sich nie wieder.
#4992052
Lesenswert?

Ja das ist richtig :

Die platine hat einen Urlader, der auf eingabe über die 
USB-schnittstelle wartet und nach einiger zeit dann zu seinem normalen 
programmcode springt.

Das erklärt die Zeitverzögerung.

Das der reset bei (+) nicht reagiert, ist in ordnung.  Erist LOW-aktiv.

Also muß der pin kurz gegen masse gezogen werden.

Wenn du ihn also nicht immer abziehen willst, dann müßtest du einen 
kleinen taster an den resetpinn und masse anbringen. Beim drücken 
startet er neu und dürfte sich dann auch wider von der 
programmiersoftware ansprechen lassen ( es sei denn windows blockiert es 
).

Schlecht programmiert ist es nicht ( er läuft nun mal nicht im 
multitasking ), bei den großen ist nämlich ein zusätzlicher prozessor 
für das programmieren zuständig, der nichts anderes macht, als sich um 
die schnittstelle zu kümmern und dann den hauptprozessor zurückzusetzen 
und zu programmieren

https://www.allaboutcircuits.com/uploads/articles/Arduino_schematic.png

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