Forum: Mikrocontroller und Digitale Elektronik Attiny85 nach flashen nicht mehr erkannt, usbasp, OS X, avrdude


von Rudi A. (Gast)


Lesenswert?

Hallo!

zunächst: Ich hab im Forum schon rumgelesen und auch Threads gefunden, 
die mir fast geholfen haben: 
Beitrag "warum kann ATTiny 85 nur einmal gesflasht werden"

Ich hab mir ein paar Attiny85's und einen USB-Programmer 
(http://www.amazon.de/Programmierer-Adapter-3-3V-USBASP-Download-Programm-ISP-AVR/dp/B00AVRHVPO/ref=sr_1_1?ie=UTF8&qid=1443366500&sr=8-1&keywords=avr+programmer) 
gekauft.

Dann auf meinem Mac avrdude und libraries installiert.
Ein Test-Programm rausgesucht:
1
#include <avr/io.h>
2
#include <util/delay.h>
3
4
#define TRANS_PIN PB2
5
#define INPUT_PIN0 PB0
6
#define INPUT_PIN1 PB1
7
8
int main (void)
9
{
10
    // Pin 1 von Port A (PA1) als Ausgang schalten
11
    DDRB = (1 << PB1);
12
    
13
    // Endlosschleife
14
    for (;;) {
15
        PORTB |= (1 << PB1);  // bit im Portregister auf 1 setzen => LED leuchtet
16
        _delay_ms(200);    // eine halbe Sekunde warten
17
        
18
        PORTB &= ~(1 << PB1); // bit im Portregister auf 0 setzen => LED aus
19
        _delay_ms(200);    // eine halbe Sekunde warten
20
    }
21
}

und nach dem erfolgreichen "make" dann geflasht mit:
1
avrdude -p attiny85 -c usbasp -U flash:w:main.hex

Das war dann erfolgreich, jedoch am Ende eine Meldung a la: safemode: 
Fuses verändert auf 0, vorher waren die 62, soll das wieder geändert 
werden? (j/n)

Da hab ich j getippt und Enter gedrückt, die rote Programmier-LED blieb 
an, nach ein paar Sekunden dann ctrl-c gedrückt, hat er abgebrochen.

OK, den Attiny ins Steckboard gepackt und siehe da, die LED blinkt, wie 
sie es soll. Soweit so gut, war ich happy :)

Dann hab ich das Programm etwas verändert (Frequenz des LED-Blinkens 
erhöht) und neu kompiliert und beim draufladen kam dann nicht 
erfolgreich und nur noch:
1
avrdude: error: programm enable: target doesn't answer. 1 
2
avrdude: initialization failed, rc=-1
3
         Double check connections and try again, or use -F to override
4
         this check.

Tja, hab ich einen neuen Attiny genommen - da war es das gleiche, das 
erste mal Programmieren geht, dann nicht mehr - er verändert wohl die 
Fuses, aber warum macht er das?

Hab dann noch sowas gefunden und probiert:
1
avrdude -p attiny85 -c usbasp -tuF
Da kommt dann:
1
avrdude: error: programm enable: target doesn't answer. 1 
2
avrdude: initialization failed, rc=-1
3
avrdude: AVR device initialized and ready to accept instructions
4
avrdude: Device signature = 0x000000 (retrying)
5
avrdude: Device signature = 0x000000 (retrying)
6
avrdude: Device signature = 0x000000
7
avrdude: Yikes!  Invalid device signature.
8
avrdude: Expected signature for ATtiny85 is 1E 93 0B
9
avrdude>

Weiß aber nicht, was ich dort eingeben soll.

Ich würde den weiteren Umgang mit uC's gerne mit learning-by-doing 
erlernen, dafür muss ich aber wissen, wie ich Programme ausprobieren 
kann, ohne die Dinger immer kaputtzuflashen.
Gibt es eine Möglichkeit, die beiden zu retten und falls nicht, 
wenigstens eine Möglichkeit, sicherzustellen, dass die Fuses nicht 
kaputt gehen?

LG und vielen Dank für etwaige Hilfe!

von Ulrich F. (Gast)


Lesenswert?

> Gibt es eine Möglichkeit, die beiden zu retten
Die letzte Rettung ist ein HV Programmer
evtl reicht es den ISP Takt zu senken.
avrdude kennt dazu den -B Parameter
Ältere usbasp haben eine Steckbrücke für LowClock



> sicherzustellen, dass die Fuses nicht
> kaputt gehen?
Kaputt gehen die nicht.
10000 Beschreibungen sollten sie aushalten.

Es ist übrigens eine doofe Idee die Fuses einzustellen, wenn man nicht 
weiß, was man da tut.
http://www.engbedded.com/fusecalc/

> vorher waren die 62
Welches der 3 Fuse Bytes?

von Rudi A. (Gast)


Lesenswert?

Erstmal Danke für die schnelle Antwort.

Auf der verlinkten Seite war ich schon, da wähle ich den Attiny85 aus, 
dann sind die default-Werte: -U lfuse:w:0x62:m -U hfuse:w:0xdf:m -U 
efuse:w:0xff:m

Aber ich verstehe nicht, wieso die Fuse-Werte sich ändern, wenn ich 
meine Hex-Datei hochlade. Und wie ich das unterbinden kann. Oder muss 
ich unten ins Programm noch reinschreiben, dass die Fuse-Werte neu 
gesetzt werden beim Flash-Vorgang?

Den B-Parameter hab ich auch gesehen, aber ohne Erfolg eingesetzt.
1
avrdude -p attiny85 -c usbasp -U lfuse:w:0x62:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m -B60

So, z.B.?

Edit: Einen Jumper gibts bei dem Programmer nicht - nur einen 5V-3,3V 
Umsteller, der im Moment auf 5V steht.

Edit2: Hab nachgesehen: "avrdude: safemode: lfuse changed! Was 62, and 
is now 0"

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rudi A. schrieb:
> Aber ich verstehe nicht, wieso die Fuse-Werte sich ändern, wenn ich
> meine Hex-Datei hochlade.

Weil da irgendwelche falschen Bits herumgewackelt haben.  Das ist
eigentlich auch das, was dieser “safe mode” verhindern soll bzw.
rückgängig machen möchte, aber im dümmsten Fall (wie offenbar bei
dir) kann es in diesem Moment auch zu spät sein.  Der “safe mode”
funktioniert normalerweise nur deshalb, weil die geänderten Fuses
nicht während der aktiven ISP-Sitzung (solange /RESET noch low ist)
wirksam gemacht werden, sondern erst danach.  Wenn nun aber auch
die /RESET-Leitung selbst wackelig ist, dann isses Pech.

USBasp an sich funktionieren normalerweise so schlecht nicht (habe
ich auch schon getestet), aber „Nummer sicher“ ist halt ein
ordentliches Tool des Herstellers, auch wenn's ein paar Groschen
mehr kostet.  Mit denen sind mir solche Dreckeffekte noch nicht
übern Weg gelaufen, während sie mit den vielen Eigenbau-ISPs, wie
sie in der Anfangszeit der AVRs sehr üblich waren, immer mal wieder
passieren (genau deshalb wurde seinerzeit der “safe mode” ja
erfunden).

von Rudi A. (Gast)


Lesenswert?

Ok, aber wieso geht das erste mal programmieren und dann ist das 
Programm auch richtig drauf und dann ab dem zweiten Mal geht alles 
kaputt?!

Ich hab das hier mehrmals durchgelesen...
Also wenn ich nen neuen Attiny nehme, erstmal die Fuses 
setzen/aktualisieren. Dann wird die Frequenz um 8 erhöht von 1MHz auf 
die 8MHz die ursprünglich vorgesehen sind?!
Und dann könnte das klappen.
Klingt das logisch?
1
Hallo zusammen,
2
ich hab mit eurer Hilfe das ganze zum funktionieren gebracht. Beim 
3
ersten Flashen wird wohl die interne Geschwindigkeit reduziert. Warum 
4
auch immer, ich setzt da ja keine Fuses.
5
6
So funktionierts bei mir:
7
8
- neuer ATTiny85, erstmal die Fuses auf L:0xe2 H:0xdf E:0xff
9
   damit setze ich den internen Takt von 8MHz auch auf 8MHz, weil ich 
10
Divide clock by 8 internally ausschalte, (die 8MHz werden also NICHT 
11
durch 8 geteilt)
12
Somit darf der ISP bis zu 2MHz schnell sein.
13
- USBasp macht wohl immer ISP 375kHz. also passt das jetzt
14
- mit avrdude -p t85 -c usbasp -e -U flash:w:DATEI.HEX -v flashen
15
geht dann auch mehrfach!!!
16
17
Ich habe 2 USBasp. Einer ist original und einer ist vermeintlich 
18
geflasht. Aber das oben beschriebene funktioniert mit beiden.
19
20
Zustätzl. habe ich den Flashbefehl mit -B16 oder -B64 erweitert und 
21
stelle bei beiden USBasp eine langsamere Flashgeschwindigkeit fest. So 
22
wie es zu erwarten war. Also funktioniert -B wohl.
23
24
Also würde ich hier den Thread mit SOLVED schliessen und bedanke mich 
25
bei allen Beteiligten.
26
27
Nachtrag: Hab grad die "alten" ATTiny85 die ich nicht mehr flashen 
28
konnte, die Fuses mit -B16 auf L:0xe2 gesetzt. Damit geht jetzt alles. 
29
SUPER.
30
31
VG
32
1wire

von bianchifan (Gast)


Lesenswert?

1. Solange Du PB5 nicht aktiviert hattest, sollte das ohne HV-progger zu 
bereinigen sein.
Installier Dir mal den AVR Burn-O-Maten, sollte auf'm Mac funzen, da 
JAVA.
Ansonsten den Extreme-Burner (WIndoof) in einer Emu Deiner Wahl, z.B. 
Virtual Box.

2. Ich habe divers USBASPs vom Chinamann, alle kamen mit einer 
speziellen (veralteten?) China-FW, um irgendwelche Uralt-51er zu 
supporten.
Du benötigst eigentlich immer zwei (ein Arduino-ISP tut aber auch) damit 
Du die aktuelle Fischl drauf packen kannst, ansonsten kommt es mit 
aktuellem Dude zu Sync-Problemen.

von Rudi A. (Gast)


Lesenswert?

Hab den Burn-O-Maten mal installiert, dort kommt immer Error writing 
Fuses, wenn ich die Fuses writen will. Der arbeitet ja auch nur mitm 
avrdude - also quasi das gleiche, als wenn ichs manuell im Terminal 
eigebe?!

Ja, die Software ist veraltet, da kommt auch ne Meldung - steht auch bei 
den Amazon Rezensionen dabei - jedoch schreiben alle, das die Meldung 
nur eine Warnung ist und man trotzdem ganz normal flashen kann.

Du meinst also, ich soll noch so ein Teil kaufen und dann kann ich mit 
dem einen den anderen Flashen?

Nachtrag: Ich hab jetzt mal n neuen Attiny aus der Packung genommen und 
die Fuses ausgelesen -> sind alle FF gewesen. Hab die dann auf default 
gesetzt (FF, DF, 62) und geschrieben, erfolgreich.
Oder sollte ich den lfuse auf E0 setzen, wie der eine Typ das in seinem 
Beitrag schrieb?? Damit wird wohl der Takt-Divisor ausgestellt?

Nachtrag2: Die Fuses wurden nicht gesetzt. Er sagt erfolgreich 
geschrieben - aber beim Auslesen sind sie wieder alle FF. Hab die dann 
mit avrdude manuell nochmal gesetzt und wollte sie mit "-n -v" auslesen, 
aber anscheinend ist der Attiny jetzt schon wieder hinüber :(

von Rudi A. (Gast)


Lesenswert?

Soll ich sowas mal bestellen?

http://www.amazon.de/Diamex-7200-DIAMEX-USB-ISP-STICK-AVR-PROGRAMMIERADAP/dp/B0068K0D4O/ref=sr_1_2?ie=UTF8&qid=1443621114&sr=8-2&keywords=avr+programmer

Ansonsten am besten ein Amazon Prime Produkt, dass ich gleich bestellen 
kann und dann damit den alten AVR Programmer Firmware upgraden kann und 
die mittlerweie 3 kaputten Attinys wieder hinbekomme... :)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rudi A. schrieb:
> Nachtrag: Ich hab jetzt mal n neuen Attiny aus der Packung genommen und
> die Fuses ausgelesen -> sind alle FF gewesen.

Hochgradig suspekt.

Atmel verschickt die Teile garantiert mit ihren Defaultwerten.  Wenn
dein Programmer nichtmal die ordentlich liest, würde ich ihn
zurückschicken und mir was ordentliches kaufen – und nicht noch ein
zweites Mal den gleichen Schrott.

von bianchifan (Gast)


Lesenswert?

Rudi A. schrieb:
> also quasi das gleiche, als wenn ichs manuell im Terminal
> eigebe?!

Nicht nur quasi, ist einfach nur ne JAVA-GUI für'n Duden, hat aber auch 
ne schöne Übersicht über die einzelnen Fuses..

Fehlermeldung? Ich kenn' die Parameter nicht auswendig, dafür nutze ich 
ja die GUI ;)
Es sollte aber eibgentlich funzen, die Fuses zu ändern, natürlich müssen 
die Bedingungen beim Schreiben! den aktuell programmierten Fuses 
entsprechen!
Zum Ändern der Fuses habe ich bislang aber immer den Extreme Burner 
genutzt, von eineigen Khazaama Test-Burns mal abgesehen.

Zum Sync-Fehler bzw. der Warnung, ja, es stimmt, normalerweise klappert 
das Schreiben. Wenn aber irgendwann dann mal doch nicht.. Pech jehappt.
Es ist besser, eine aktuelle FW zu flashen, dann sollte auch die 
Geschwindigkeitumstellung via softer Ware kein Problem darstellen.
Meinen erstenn ASP hatte ich seinerzeit ebenfalls mit Warning und trara 
aufgepeppt, auf dem zu flashenden Teil - also dem nicht aktiven USBASP - 
muss dazu ein Jumper gesteckt werden, auf neueren sind da meist zu zwei 
benachbarte unbestückte Lötpunkte und gar nur nur Kleckse für 'ne 
Lötbrücke.

Und wenn Du mehr Erfahrung hast..der letzte Schrei ist ein ASP mit 
Tiny85, zb. GuloProg, Digispark ...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rudi A. schrieb:
> Soll ich sowas mal bestellen?

Warum zum Geier™ nicht endlich mal ein Tool, welches auch vom
Hersteller supportet ist?

https://hbe-shop.de/Art-2407172-ATMEL-ATATMEL-ICE-BASIC-DEBUGGER-ATMEL-ARM-AVR-BASIC-KIT

Damit kannst du die Dinger auch gleich noch debuggen.

Ist dir deine Freizeit wirklich so wenig Wert, dass du noch mehr davon
verplemperst, statt dich endlich deinem eigentlichen Projekt widmen
zu können?

von Rudi A. (Gast)


Lesenswert?

Ok, hab ja schon einen etwas anderen verlinkt, zählt der auch zu 
Schrott?

Was ist denn ein Nicht-Schrottiger?

Nachtrag:
Hab den jetzt mal bestellt (20 Euro ist noch ok. Man kann bei Amazon ja 
auch Sachen zurückschicken) - man kann wohl mit einer Drahtbrücke einen 
Self-Programming-Jumper simulieren und mit dem zweiten Programmer den 
ersten umprogrammieren, muss nur drauf achten die Fuses auch hier 
richtig zu setzen.

Weiß da jemand zufällige ne gute Anleitung? Und ich nehme dann die 
aktuelle Fischl Firmware?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rudi A. schrieb:
> Was ist denn ein Nicht-Schrottiger?

Schrieb ich dir doch schon.

Ich verstehe auch nicht, warum man sowas krampfhaft bei einem
Buchversender kaufen muss.  Ach ja klar, weil die Elektronikläden
den Billigstkram nicht erst führen.

Ich mein', so ein USBasp ist schön für einen Schüler, der sich das
alles vom Taschengeld leisten muss und bei dem der Weg das Ziel ist.
Der kann sich den dank Opensource Soft- und Hardware dann auch gleich
selbst aufbauen und lernt was dabei.

Wenn ich sowas aber einfach nur benutzen will, um mich ansonsten
meinem eigentlichen Projekt zu widmen, dann würde ich mir das nicht
antun.  Der Debugger spart einem am Ende so viel Zeit beim Projekt,
dass es sich schon deshalb lohnt.

von Rudi A. (Gast)


Lesenswert?

Jörg W. schrieb:
> Ist dir deine Freizeit wirklich so wenig Wert, dass du noch mehr davon
> verplemperst, statt dich endlich deinem eigentlichen Projekt widmen
> zu können?

Naja ich verstehe schon wie Ihr alten Hasen vernünftige Geräte zu Hause 
habt und auf die schwört. Aber als Neuanfänger ist es nicht direkt 
einsehbar, wieso ein Gerät für 7,99 mit positiven Rezensionen, in den 
denen steht, dass das klappt jetzt weniger geeignet ist, als ein 
anderes. Zumal ich nach einem kurzen Erfolg jetzt rein mental schon kurz 
vor meinem Ziel zu sein scheine.
Das erste mal Programmieren geht ja ohne Probleme.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rudi A. schrieb:
> Aber als Neuanfänger ist es nicht direkt einsehbar, wieso ein Gerät für
> 7,99 mit positiven Rezensionen, in den denen steht, dass das klappt
> jetzt weniger geeignet ist, als ein anderes.

Wieso?

Das erlebst du doch gerade.

Schreib' doch wenigstens eine negative Rezension, denn wie du siehst,
andere verlassen sich offenbar auf sowas.

von bianchifan (Gast)


Lesenswert?

Rudi A. schrieb:
> aber beim Auslesen sind sie wieder alle FF. Hab die dann
> mit avrdude manuell nochmal gesetzt und wollte sie mit "-n -v" auslesen,
> aber anscheinend ist der Attiny jetzt schon wieder hinüber :(

Nö.
So ne Driss hatte ich auch mal, da sind die Fuses schlichtweg überhaupt 
nicht nicht geschrieben worden und beim Auslesen hats trotz 
gegenteiliger Meldung gehapert.

Ein ATTiny85 wird mit 1MHZ intern ausgeliefert und möchte genau so 
angesprochen werden.

Eine inzwischen recht stressfreie Methode ist das Flashen mittels 
Arduino-IDE 1.6.5.
Dazu muss eine ATTiny-Erweiterung installiert werden, ich nutze die 
Damellis Version.
Takt auswählen und flashen hat bislang immer gefunzt, egal was vorher 
drauf war.
Hexen kann die aber auch nicht, wenn der Takt auf extern steht, muss er 
auch extern angelegt werden.

von (prx) A. K. (prx)


Lesenswert?

Rudi A. schrieb:
> avrdude -p attiny85 -c usbasp -U flash:w:main.hex
>
> Das war dann erfolgreich, jedoch am Ende eine Meldung a la: safemode:
> Fuses verändert auf 0, vorher waren die 62, soll das wieder geändert
> werden? (j/n)

Wieso macht der von sich aus was mit den Fuses? Im Kommando oben steht 
dazu nichts drin.

von Rudi A. (Gast)


Lesenswert?

Bislang hab ich ja alles an meinem Mac gemacht, ich hab hab aber auch 
einen stationären Win-PC.

Was nehme ich denn für die gleichen Dinge am besten bei Windows. Es gibt 
vom Hersteller direkt ein Atmel Studio 7 - das könnte ich mal 
installieren.
Und Treiber lad ich von der Fischl-Seite runter.

Dann schließe ich den mal unter Windows an und gucke, ob sich was 
ändert.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rudi A. schrieb:
> Es gibt vom Hersteller direkt ein Atmel Studio 7 - das könnte ich mal
> installieren.

Hilft dir mit dem USBasp gar nichts.

Aber OK, das mit dem Mac hatte ich verdrängt.  Dafür ist das
Atmel-ICE, welches ich dir genannt habe, derzeit (leider) keine
gute Wahl.  Unter OSX habe ich das mit AVRDUDE noch nicht zum
Laufen bekommen, da es dort nicht gelingt, den HID-Treiber des OSes
dazu zu bewegen, dass man selbst zu Fuß mit dem Gerät reden kann.

(Ich müsste AVRDUDE mal auf die libhidapi umschreiben, aber dazu hat
mir bislang die nötige Zeit gefehlt.)

: Bearbeitet durch Moderator
von bianchifan (Gast)


Lesenswert?

Rudi A. schrieb:
> Was nehme ich denn für die gleichen Dinge am besten bei Windows.

Für ein spezielles Gerät, den AVR Transistor Tester, nutze ich eine 
zusammengeschusterte AVR-Toolchain nach Michael D.
Aber nur, weil das alles Kommandozeilenfreaks sind und ich die 
vorgefertigtes makefiles nutzen kann;)
Ansonsten bevorzuge ich Eclipse, allerdings liegt das momentan brach, da 
der Digispark-Support hakelt - deswegen z.Zt. Arduino IDE 1.6.5

von Rudi A. (Gast)


Lesenswert?

Ok, ich hab jetzt mal den Khazama AVR Programmer getestet und der gibt 
mir die gleichen Resultate wie unter Mac. Also dass der Attiny komplett 
leer ist, alle Bits auf 0 und die Signatur auch 0 ist.
Jetzt würde ich eigentlich auf einen Verkabelungsfehler tippen, jedoch 
dass es das erste Mal immer klappt ist da seltsam.

Aber: wenn ich den uC aus der Halterung nehme, kommt exakt die gleiche 
meldung.. Also entweder ist der ganz kaputt oder da ist noch was anderes 
im Argen...

von (prx) A. K. (prx)


Lesenswert?

Rudi A. schrieb:
> Ok, ich hab jetzt mal den Khazama AVR Programmer getestet und der gibt
> mir die gleichen Resultate wie unter Mac. Also dass der Attiny komplett
> leer ist, alle Bits auf 0 und die Signatur auch 0 ist.

Das bedeutet nur, dass der µC nicht auf die Initiativen des Programmers 
reagiert. Er muss deshalb weder kaputt noch leer sein.

von Rudi A. (Gast)


Lesenswert?

Ok, hab grade noch was anderes gelesen: Und zwar kann es sein, dass der 
Attiny sich im SlowMode programmieren lässt und erkennen auch?
Auf http://www.fischl.de/usbasp/ sieht man ja im Schaltbild den Jumper1, 
wenn man den setzt (hab ich bei mir nicht, aber kann man ja dranlöten), 
ist der im SlowMode.
Ansonsten wenn morgen der andere Stick kommt, angeblich ja Made in 
Germany, also kein China-Stick, werd ich dann den JP2 setzen und die 
neuste Hex-Datei von 2011 von der Fischl-Seite drüberbraten und sehen, 
obs besser wird...

Nachtrag: Es gibt wohl auch noch einen SCK-Jumper der den 
Programmer-Takt runtersetzt, der wird aber wohl nur zum Firmware Update 
gebraucht.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rudi A. schrieb:
> Auf http://www.fischl.de/usbasp/ sieht man ja im Schaltbild den Jumper1,
> wenn man den setzt (hab ich bei mir nicht, aber kann man ja dranlöten),
> ist der im SlowMode.

Wenn's den Jumper nicht gibt, ist zu erwarten, dass dessen Firmware
den vielleicht auch gar nicht unterstützt.

Ansonsten: ja, prinzipiell könnte das sein.

von Rudi A. (Gast)


Lesenswert?

Jörg W. schrieb:
> Rudi A. schrieb:
>> Auf http://www.fischl.de/usbasp/ sieht man ja im Schaltbild den Jumper1,
>> wenn man den setzt (hab ich bei mir nicht, aber kann man ja dranlöten),
>> ist der im SlowMode.
>
> Wenn's den Jumper nicht gibt, ist zu erwarten, dass dessen Firmware
> den vielleicht auch gar nicht unterstützt.
>
> Ansonsten: ja, prinzipiell könnte das sein.

Ok, kann ich denn irgendwie auslesen, welche Firmware auf dem Programmer 
installiert ist? Macht avrdude das oder muss ich da in den USB-Optionen 
z.B. unter Windows gucken?

Das Layout ist aber zu 99% gleich, wie bei dem Fischl-Stick den er 
anbietet.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rudi A. schrieb:
> Ok, kann ich denn irgendwie auslesen, welche Firmware auf dem Programmer
> installiert ist?

Nein, die USBasp-Firmware hat leider (meines Wissens) keine Methode,
mit der man sich eine Versionsnummer oder dergleichen zurückgeben
lassen könnte.  Hätte ich mir für AVRDUDE durchaus gewünscht, sowas
zu haben.

von Rudi A. (Gast)


Lesenswert?

Hmm hab den Jumper für den SlowMode mal gesetzt, aber ändert sich nichts 
am verhalten. Wenn ich n neuen Attiny reinsetze und nur auslese mit 
Burn-o-Mat behauptet er alle Fuses wären FF.

Mal sehen ob das gleiche morgen mit dem anderen auftritt und wenn nicht, 
wie ich die "kaputten" wieder reparieren kann...

von Rudi A. (Gast)


Lesenswert?

Ich hab nochmal weiter gelesen und manche Leute machen beim Flashen z.B. 
einen 10k Widerstand an den Reset-Pin auf Vcc. Hab dazu jetzt beim 
überfliegen des Datenblattes nichts gefunden?!

Und noch ne Frage: Beim Burn-o-Mat unter OS X kann ich beim Bratvorgang 
eine Datei für "Flash" und eine für "Eeprom" auswählen, was ist denn da 
der Unterschied und was ist das Richtige?

Die normale Betriebsspannung von knapp 5V liegt auch beim Attiny an, 
habs grade nochmal nachgemessen, um vielleicht doch noch n Fehler zu 
finden.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rudi A. schrieb:
> Ich hab nochmal weiter gelesen und manche Leute machen beim Flashen z.B.
> einen 10k Widerstand an den Reset-Pin auf Vcc. Hab dazu jetzt beim
> überfliegen des Datenblattes nichts gefunden?!

Hat damit auf jeden Fall nichts zu tun.  Es gibt einen internen
Pullup, der externe (zusammen mit einem Kondensator) verbessert nur
die Störsicherheit.

> Und noch ne Frage: Beim Burn-o-Mat unter OS X kann ich beim Bratvorgang
> eine Datei für "Flash" und eine für "Eeprom" auswählen, was ist denn da
> der Unterschied und was ist das Richtige?

Die eine ist für den Flash und die andere für den EEPROM …

Programme liegen im Flash.

> Die normale Betriebsspannung von knapp 5V liegt auch beim Attiny an,

Die Dinger funktionieren ab 1,8 V (offiziell nur in der V-Version,
aber real sicher auch ohne).

von Tom (Gast)


Lesenswert?

Rudi A. schrieb:
> OK, den Attiny ins Steckboard gepackt und ....

Mach bitte mal ein Foto vom Aufbau.

von Rudi A. (Gast)


Angehängte Dateien:

Lesenswert?

Hab mal ein paar Fotos angehängt.

Der Versuchsaufbau ist auf 'nem Steckboard, da ist nur 1 LED gegen Masse 
geschaltet, das ist alles. (kein Foto)

Es wird aber wohl daran liegen, dass der AVR Programmer ein veraltete 
Firmware hat. Es gibt auch andere Leute im Internet, die ihren Attiny 
"kaputt" geflasht/gefuses haben. Das erste mal flashen klappt, aber dann 
wird irgendwie die Geschwindigkeit zu hoch eingestellt, dass der Flasher 
nicht mehr mitkommt, wenn ich das richtig verstanden habe.
Und mit dem -tuF Befehl kann man per "sck 1000" die Geschwindigkeit 
runter setzen und oder mit z.B. -B 4 dann neue Fuses setzen nach dem 
Löschen.

Morgen kommt der neue/andere Programmer, der hat hoffentlich ne neue 
Firmware. Dann probier ich zum einen das Flashen von neuen Attiny's aus 
und zum anderen werde ich versuchen den veralteten Programmer, den ich 
jetzt nutze, zu aktualisieren.

von Tom (Gast)


Lesenswert?

Da fehlt ein Kondensator 100nF zwischen Vcc und GND.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Tom schrieb:
> Da fehlt ein Kondensator 100nF zwischen Vcc und GND.

Je nachdem, wie man's sieht: falls man jemals debugWIRE benutzen will,
dann muss er „fehlen“.  Ansonsten würde auch dieser Kondensator
sehr wahrscheinlich das Problem des TE nicht beeinflussen.

von (prx) A. K. (prx)


Lesenswert?

Jörg W. schrieb:
>> Da fehlt ein Kondensator 100nF zwischen Vcc und GND.
>
> Je nachdem, wie man's sieht: falls man jemals debugWIRE benutzen will,
> dann muss er „fehlen“.

Du verwechelst grad den VCC-GND mit dem Reset-GND Kerko.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

A. K. schrieb:
> Du verwechelst grad den VCC-GND mit dem Reset-GND Kerko.

Ah ja, sorry.  Zu früh am Morgen. ;-)

Ja, da gehört natürlich auf jeden Fall einer dran, und das Fehlen
eines solchen könnte in der Tat zu derartig verwundersamen Effekten
führen.

von Rudi A. (Gast)


Lesenswert?

Guten Morgen,
nochmals Danke für die Antworten.

Also fehlt ein 100nF Kondensator? An welcher Stelle soll der denn 
zwischen Vcc und Gnd? Direkt Am Attiny?
(So ein ungerichter Keramikkondensator und kein gepolter Elektrolyt?)

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

Jörg W. schrieb:
> Warum zum Geier™ nicht endlich mal ein Tool, welches auch vom Hersteller
> supportet ist?.....

In dem Post ist eigentlich alles gesagt. Gutes Werkzeug ist schon mehr 
als der Halbe Weg..

Diese ganzen Spielzeugprogrammer fallen in die Kategorie "vom Bastler 
für Bastler"

von Dietrich L. (dietrichl)


Lesenswert?

Rudi A. schrieb:
> Also fehlt ein 100nF Kondensator? An welcher Stelle soll der denn
> zwischen Vcc und Gnd? Direkt Am Attiny?

So nah wie möglich am µC! Das Ding heißt "Stützkondensator".

> (So ein ungerichter Keramikkondensator und kein gepolter Elektrolyt?)

Keramik, da er bessere Hochfrequenz-Eigenschaften hat (die sind hier 
wichtig!).

Gruß Dietrich

von Rudi A. (Gast)


Lesenswert?

Ok, hab ich mal gemacht - es hat auch auch was geändert (Weiß leider 
nicht, ob durch den Slow-Jumper oder den Kondensator):
Die "kaputten" lassen sich nach wie vor nicht ansprechen - ABER wenn ich 
einen neuen nehme, lassen sich jetzt die Fuses korrekt auslesen.
Ich hab das Lfuse-Bit auf E2 gesetzt, geschrieben und konnte auch wieder 
lesen :) Also ein kleiner Erfolg.

(Ich hab zusätzlich den -B 60 Parameter verwendet, auch wenn er anzeigt, 
dass er eben aufgrund der veralteten Firmware die Clock nicht verändern 
kann.)

Ich hab zum Test das LED-Blink Programm drauf geladen und es klappt, 
auch verifizieren geht. Jedoch nicht das erneute Beschreiben, wie 
gehabt. Allerdings liest er jetzt die Device Signatur richtig aus. 
Vorher war da immer nur 0.

Nachtrag: Das erneute Flashen geht jetzt! Er liest als lfuse E2 aus, das 
ich gesetzt habe und hat jetzt ein anderes Programm geladen.
Das 2000ms Intervall zum blinken ist jetzt aber 8mal so schnell. Das 
könnte am noch falschen F_CPU Wert im Makefile liegen...

von bianchifan (Gast)


Lesenswert?

Rudi A. schrieb:
> Also fehlt ein 100nF Kondensator?
Bis gestern einschließlich habe ich weder einen externen Pullup noch 
einen Reset Stützkondi benötigt, bei Verwendung eines einer 
Programmierklammer wäre das auch recht umständlich, es heißt schließlich 
(I)n(S)ystem(P)rogramming.

Dein verwendeter ASP hat ein modernes PCB-Layout ohne Ack-Jumper und 
möchte per SW, also dem Duden, auf langsame! Übertragung aufgefordert 
werdern, was mit der installierten FW aber wohl hapert.
Bovor ich auf die Arduino-IDE umgestiegen bin hatte ich (und habe noch) 
einen fest auf LANGSAM gejumperten 4rt-USBASP, das hilft Dir aber auch 
nicht weiter.
Grundsätzlich hilft Dir nur ein Löschen und anschließendes Neuschreiben 
der Fuses, wobei zum Löschen auf langsame Übertragung geschaltet werden 
muss.
Dazu ist wohl ein weiterer ISP-Programmer nötig, egal welcher 
Beschaffenheit.

von Rudi A. (Gast)


Lesenswert?

So, ich hab mal zum testen das gewollte Programm für den 433MHz Sender 
draufgepackt und siehe da: es funktioniert alles. Wenn man nur erstmal 
am Anfang die Fuses umstellt/erneut schreibt. Seltsam, aber naja.

Jetzt hab ich meinen zweiten AVR bekommen, der sollte eine aktuelle 
Firmware haben, hat natürlich jetzt ein 6-Pin Anschluss, muss ich erst 
rumlöten, da der andere ja 10-PIN hatte...
Ich werde dann probieren, ob ich eventuell langsam mit den "kaputten" 
uC's sprechen kann, um sie zu löschen und die Fusebits neu zu setzen. 
Sind ja immerhin 3 Stück.
Und natürlich zu guter letzt die Firmware upzudaten von Stick1. Bin ich 
mir aber noch nicht sicher, ob es das Risiko wert ist, bzw. wie groß das 
Risiko ist, ihn kaputt zu machen.

von Rudi A. (Gast)


Lesenswert?

Also der neue Stick funktioniert auch soweit.

Jetzt hab ich mal geguckt, wie das mit dem Firmware Update gehen soll:
Sticks beide verbinden mittels 10-Pin -> 6-Pin, hab ich gemacht.
Beim zu updatenden Stick den Jumper2 angelötet an den Atmega8.
Unter Windows avrdude gestartet und probiert zu lesen -> geht nicht.

von Rudi A. (Gast)


Lesenswert?

Anscheinend muss der Programmer, der den anderen Stick programmiert auch 
im SlowMode laufen...
Leider gibts auch hier kein Jumper und es ist ein AT90USB162 verbaut. 
Pin25 auf Masse legen geht hier wohl nicht, da die Pin Belegung anders 
ist?!
Weiß jemand, wie ich den in den SlowMode bekomme? Also welchen Pin ich 
nehmen muss?
Bei dem Atmega war es PC2(ADC2).
Laut Datenblatt des AT90USB162 ist ein PC2-Anschluss an Pin5, aber ist 
der vergleichbar?

von Rudi A. (Gast)


Lesenswert?

Naja, nachdem ich grade mit grobigen Fingern 3 Pins des Atmega verbunden 
habe und die wieder freibekommen habe, lass ichs erstmal sein mit dem 
Flashen.
Hab aber jetzt 2 funktionierenden Programmer, einen davon mit veralteter 
Firmware.
Einer usbasp (alt) und einer stk500v2/avrispv2 (aktuell).

Jedoch hab ich 3 Attinys, die sich nicht mehr richtig ansprechen lassen 
- wie bekomme ich die denn wieder hin?

von Paul B. (paul_baumann)


Lesenswert?

Rudi A. schrieb:
> Jedoch hab ich 3 Attinys, die sich nicht mehr richtig ansprechen lassen
> - wie bekomme ich die denn wieder hin?

Stand schon da:

Catweazle schrieb im Beitrag #4293810:
> Jetzt darfst du dir einen HV-Programmer kaufen/basteln....

mfG Paul

von Ulrich F. (Gast)


Lesenswert?

Vielleicht reicht es auch sie mit einem externen Takt zu versorgen...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rudi A. schrieb:
> Jedoch hab ich 3 Attinys, die sich nicht mehr richtig ansprechen lassen
> - wie bekomme ich die denn wieder hin?

Steck sie mir in einen Briefumschlag mit Rückumschlag.  Ich pack'
sie hier mal in einen STK500 rein.

Und das nächste Mal weißt du, warum CMOS-Bausteine unbedingt
Stützkondensatoren benötigen. ;-)  (Das ist übrigens keine
Eigenart von Atmel, sondern prinzipbedingt bei CMOS so.)

von Rudi A. (Gast)


Lesenswert?

Ja ich hab daraus gelernt :) Hab schon drei Stück programmiert mit 
Testprogrammen und jetzt geht alles. Kann meine Funksteckdosen schalten 
:)

Ok zu den Attiny's schick ich dir noch ne PM.

Nachtrag: allgemeine Frage: Brauchen CMOS-Bausteine IMMER 
Stützkondensatoren? Immer 100nF rum? Also auch in der normalen Schaltung 
oder nur beim Programmieren?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rudi A. schrieb:
> Brauchen CMOS-Bausteine IMMER Stützkondensatoren?

Ja.

> Immer 100nF rum?

Ist zumindest eine gute Hausnummer.

> Also
> auch in der normalen Schaltung oder nur beim Programmieren?

Auch in der normalen Schaltung.  Die Folgen sind vielleicht nur nicht
so fatal wie beim Programmieren. ;)

Der Hintergrund: CMOS zieht ja statisch keinen Strom(*).  Im Moment
des Umschaltens jedoch müssen überall dort, wo sich am Ausgang eines
Gatters der Pegel ändert, kleine Kondensatoren umgeladen werden. Diese
Umladung ist relativ niederohmig (es soll ja schnell gehen), und
erzeugt aus diesem Grunde eine Stromspitze in der Versorgungsleitung.
Diese wiederum verursacht selbst an einigen Nanohenry der Zuleitung
bereits einen nennenswerten Spannungseinbruch.  Daher muss man diese
Umladeenergie aus einem (oder mehreren) möglichst nahe gelegenen
Kondensator aufbringen.

(*) OK, mittlerweile sind die Strukturen so klein, dass auch der
Leckstrom eine Rolle spielt, aber das ist hier nebensächlich.

von Rudi A. (Gast)


Lesenswert?

Ok gut, wieder was gelernt.
Vielen Dank für den tollen Support hier im Forum - hoffentlich kann ich 
irgendwann auch mal was zurückgeben und anderen Anfängern helfen :)

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.