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.
Da läuft wahrscheinlich V-USB auf dem tiny85. Also USB in Software. Die Startverzögerung wird wahrscheinlich durch die USB-Anmeldung entstehen.
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.
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.
> 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.
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.
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.
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
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.