Forum: Mikrocontroller und Digitale Elektronik Probleme mit ATtiny25 und USBasp


von Freddy (Gast)


Lesenswert?

Hallo alle zusammen.

Ich hoffe hier auf ein wenig Hilfe. Bin noch etwas neu in der µC 
Programmierung.

Also folgendes:

Ich habe einen ATtiny25 den ich mithilfe eines USBasp von Fischl 
programmieren möchte.
Den Tiny habe ich direkt mit den jeweiligen Anschlüssen des Progammers 
verbunden. Pin 2 und 3 bleiben frei. Die Spannungsversorgung mach ich 
über den Programmer. Ist die Schaltung so richtig, oder muss ich noch 
irgendwelche Kondensatoren oder Widerstände mit einbringen? Habe jetzt 
schon eine Menge gelesen, aber die einen sagen mit, die anderen ohne.

Der USBasp wird unter Win7 erkannt und ist auch installiert. Ich benutze 
Atmel Studio 6 und habe die Programmer nach der Anleitung eingebunden. 
Soweit funktioniert es auch alles und ich habe es auch geschafft 
scheinbar den Chip zu flashen.
Als Befehl benutze ich
1
 -e -P usb -c USBasp -p ATtiny25 -e -U flash:w:"$(ProjectDir)rom.hex":a
Es kam immer mal wieder ein Verifizierungsfehler, aber wenn man es öfter 
versucht hat, hat es auch mal geklappt. Dann habe ich versucht Fuses zu 
setzten. Also Low habe ich 0x7A, dass ging auch noch aber als High 0xFB 
wollte er dann nicht mehr? Jetzt antwortet er nicht mehr. Liegt es am 
internen Takt (ist jetzt glaub ich auf /8)? Wenn ich jetzt ein –B 1000 
hinzufüge kommt folgende Meldung:
1
avrdude.exe: set SCK frequency to 1000 Hz
2
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
3
avrdude.exe: error: programm enable: target doesn't answer. 1 
4
avrdude.exe: initialization failed, rc=-1
5
             Double check connections and try again, or use -F to override
6
             this check.
7
8
9
avrdude.exe done.  Thank you.
Die 1000 Hz sollten jetzt ja eigentlich langsam genug sein, oder?
Leider habe ich auch keinen zweiten Programmer um die Firmware auf den 
neusten Stand zu bringen. Sollte aber auch so gehen, oder nicht?

Jetzt hat es vermutlich schon ein paar Tinys dahingerafft und ich 
bräuchte jetzt wirklich mal dringend Hilfe. Ich hoffe ich habe keine 
wichtigen Infos vergessen.
Kann mir jemand erklären, was ich falsch mache bzw. was ich ändern muss?

Vielen Dank

Freddy

von D. V. (mazze69)


Lesenswert?

Freddy schrieb:
> Dann habe ich versucht Fuses zu
> setzten. Also Low habe ich 0x7A, dass ging auch noch aber als High 0xFB
> wollte er dann nicht mehr? Jetzt antwortet er nicht mehr.

Was sagt denn das Datenplatt zu deinen Fuse-Settings?

von stefanus (Gast)


Lesenswert?

Ich würde einen anderen programmer nehmen. Der USBASP ist für sein 
unzuverlässiges USB Interface bekannt.

Nimm lieber einen Programmer mit einem richtigen USB Interface. Die 
meisten haben 2 Chips drauf: Ein USB-UART Interface, sowie einen AVR.

von stefanus (Gast)


Lesenswert?

Du hast die Low Fuses für "externen Chrystal" eingestellt und vermutlich 
keinen Quarz angeschlossen.

Kannst Du hier nachvollziehen: http://www.engbedded.com/fusecalc

von Freddy (Gast)


Angehängte Dateien:

Lesenswert?

Erstmal vielen Dank für die schnelle Antwort.

D. V. schrieb:
> Was sagt denn das Datenplatt zu deinen Fuse-Settings?

Ich habe es mit dem Calculator (http://www.engbedded.com/fusecalc/) 
gemacht.

Habe mal einen Screenshot angehängt.

von stefanus (Gast)


Lesenswert?

Na dann scrolle weiter nach obe, da siehst Du, dass du die Fuses für 
externen Quarz eingerichtet hast. Den musst Du nun auch anschließen.

von Freddy (Gast)


Lesenswert?

stefanus schrieb:
> Du hast die Low Fuses für "externen Chrystal" eingestellt und vermutlich
> keinen Quarz angeschlossen.

Oh ja, hab ich nicht bemerkt. Habe die Schaltung fertig gekriegt und 
darauf nicht weiter geachtet.
Brauch ich den Quarz nur zum Programmieren? Weil in der fertigen 
Schaltung nachher ist auch keiner drin. Was für einen muss ich da 
nehmen? 20 MHz?

von D. V. (mazze69)


Lesenswert?

Freddy schrieb:
> Brauch ich den Quarz nur zum Programmieren? Weil in der fertigen
> Schaltung nachher ist auch keiner drin. Was für einen muss ich da
> nehmen? 20 MHz?

Schau dir mal das Datenblatt des Tiny mal genau an. Da steht alles drin, 
was du wissen willst.

von Stefan F. (Gast)


Lesenswert?

Solange die Fuses für Quarz eingestellt sind, braucht der Chip einen 
Quarz um zu funktionieren. Wenn die Schaltung keinen Quarz hat, müssen 
die Fuses anders eingestellt werden (z.B. internal R/C oscillator). Ich 
frage mich ernsthaft, warum Du die fuses überhaupt geändert hast?

Jetzt brauchst du jedenfalls einen Quarz oder einen externen Oszillator 
(mit TTL Ausgang) an Pim XTAL1, damit du die Fuses wieder zurück stellen 
kannst.

von Эраст Петрович Фандорин (Gast)


Lesenswert?

D.V. schwatzte wirr:
>Schau dir mal das Datenblatt des Tiny mal genau an. Da steht alles drin,
>was du wissen willst.

Kannst Du auf eine gestellte Frage eingehen, deren Sinn erfassen?
Nein? Dann halte die Pfoten still!

@Freddy
Mit der Fusebit-Kombination aus Deinem Bild hast Du einen Kristall-
OSZILLATOR eingestellt, keinen Quarz. Du mußt nun eine Frequenz zwischen
1 und 3MHz extern erzeugen und anlegen. Dann bekommst Du wieder Zugriff.

Erast Fandorin

von Freddy (Gast)


Lesenswert?

Stefan us schrieb:
> Solange die Fuses für Quarz eingestellt sind, braucht der Chip
> einen
> Quarz um zu funktionieren. Wenn die Schaltung keinen Quarz hat, müssen
> die Fuses anders eingestellt werden (z.B. internal R/C oscillator). Ich
> frage mich ernsthaft, warum Du die fuses überhaupt geändert hast?
>
> Jetzt brauchst du jedenfalls einen Quarz oder einen externen Oszillator
> (mit TTL Ausgang) an Pim XTAL1, damit du die Fuses wieder zurück stellen
> kannst.

Also so ganz schlau werde ich nicht aus dem Datenblatt, aber wenn ich es 
richtig sehe, müsste ein 4 MHz mit 2 22 pF Kondensatoren an XTAL1/2 und 
GND funktionieren, oder?

Ich habe die Fuses geändert, weil das von dem "Erfinder" der Schaltung 
so vorgeschrieben war. Und ich noch am Lernen bin, was die ganze 
Programmierung und Schalung angeht.

Sehe ich es denn richtig, dass die Schaltung mit dieses 
Fuse-Einstallungen und ohne Quarz auch nicht funktionieren kann?

von Эраст Петрович Фандорин (Gast)


Lesenswert?

Liest Du manchmal auch noch mit?

Mit der Fusebit-Kombination aus Deinem Bild hast Du einen Kristall-
OSZILLATOR eingestellt, keinen Quarz.

von Freddy (Gast)


Lesenswert?

Эраст Петрович Фандорин schrieb:
> Liest Du manchmal auch noch mit?

Entschuldige, am Anfang war die Rede von einem Quarz, daher habe ich es 
wohl übersehen.

D.h. einen Oszillator (wie bspw. 
http://www.conrad.de/ce/de/product/158070/Quarzoszillator-Serie-TFT-680-TFT680-Frequenz-2-MHz-Bauform-DIP-14-L-x-B-207-mm-x-131-mm?ref=searchDetail 
) an XTAL1 + und -, richtig?

Und ich muss die Einstellungen ändern, da sonst meine Schaltung auch 
ohne nicht funtkionieren wird, oder?

von Freddy (Gast)


Lesenswert?

Ich muss jedoch sagen, dass ich auch einen habe, bei dem ich die Fuses 
nicht geändert habe und er nict mehr antwortet. Muss ich sonst an der 
Schalung noch was ändern? Oder woran kann das liegen?

von Эраст Петрович Фандорин (Gast)


Lesenswert?

Ja, so einen Oszillator oder irgendetwas Anderes, was diese Frequenz
erzeugen kann, z.B. ein Funktionsgenerator oder ein astabiler Multi-
vibrator aus 2 Transistoren oder aus einem Gatter eines 4093.

>Ich muss jedoch sagen, dass ich auch einen habe, bei dem ich die Fuses
>nicht geändert habe und er nict mehr antwortet.

Mache jetzt nicht in Panik noch die restlichen Controller unbrauchbar.

Erast Fandorin

von Freddy (Gast)


Angehängte Dateien:

Lesenswert?

Ok, dann werd ich mir den nachher mal besorgen.

Эраст Петрович Фандорин schrieb:
> Mache jetzt nicht in Panik noch die restlichen Controller unbrauchbar.

Habe ich nicht vor, im Moment kann ich ja eh nicht weiter machen. 
Außerdem hab ich eigentlich nicht vor, es so lange zu testen bis es 
geht, sonder versuche die ganze Materie irgendwie zum mindest halbwegs 
zu verstehen.

Nochmal zu meiner Frage mit den Fuses: Ich habe mal einen Schaltplan der 
zu bauenden angehängt. Sind die Fuses dafür jetzt richtig, oder nicht?

von Freddy (Gast)


Lesenswert?

Sollte ich mir denn noch ein paar weitere Teile für die Programmierung 
besorgen? Oder reicht es, wenn ich die einzelnen Pins einfach 
miteinander verbinde?
Dachte nur, wenn ich nachher eh was holen muss, kann ich auh direkt alle 
wichtigen Teile holen.

P.S.: Entschuldigt bitte nochmals meine vielen Fragen, aber wie gesagt, 
ich bin recht neu in der ganzen Materie.

von Эраст Петрович Фандорин (Gast)


Lesenswert?

Wo hast Du in Deiner obigen Schaltung den Programmer angeschlossen?
An den Widerständen?
Die Widerstände bilden einen Spannungsteiler. Es werden dann die 
erforder-
lichen Pegel an MOSI, MISO und SCK nicht erreicht.

Du mußt direkt an die Anschlüsse des Controllers gehen.

>Sind die Fuses dafür jetzt richtig, oder nicht?

Nein. Wie Du sie oben beschrieben hast, stehen sie auf "externer 
Kristall-
oszillator" Es ist aber keiner dran.

>Ich habe die Fuses geändert, weil das von dem "Erfinder" der Schaltung
>so vorgeschrieben war.

Dann läuft sie bei dem jetzt auch nicht mehr.

Erast Fandorin

von Freddy (Gast)


Lesenswert?

Danke für die Antwort.

Эраст Петрович Фандорин schrieb:
> Wo hast Du in Deiner obigen Schaltung den Programmer angeschlossen?
> An den Widerständen?

Der µC wird nicht in der Schaltung porgrammiert, sondern extern und dann 
eingesetzt. Bei der externen Schaltung haben ich den USBasp direkt an µC 
angeschlossen. Ist das denn wenigstens richtig?

Da die Platine fertig ist und keinen Platz für einen Quarz oder 
Oszilator hat, muss ich wohl was an den Fuses ändern. Dann werd ich 
nochmal die genauen Einstellungen erfragen.

Es geht mir im Moment halt auch vorranging darum, den µC richtig zu 
flshen. Dann kümmer ich mich um die weiteren Sachen. Wenn ich dabei 
schon was falsch mache hilft mir auch das richtige setzten der Fuses 
nix.

Besten Dank

von Stefan F. (Gast)


Lesenswert?

Эраст Петрович Фандорин schrieb:

> Mit der Fusebit-Kombination aus Deinem Bild hast Du einen
> Kristall-OSZILLATOR eingestellt, keinen Quarz.

Das ist nicht richtig.

"Externer Crystal Oscillator" bedeutet bei AVR, dass man einen Quarz 
(und zwei Kondensatoren) an den Mikrocontroller anschließt.

Es wird auch mit einem fertigen Oszillator an Pin XTAL1 funktionieren. 
Dazu ist allerdings die Einstellung "External Clock" vorgesehen.

von Freddy (Gast)


Lesenswert?

Stefan us schrieb:
> "Externer Crystal Oscillator" bedeutet bei AVR, dass man einen Quarz
> (und zwei Kondensatoren) an den Mikrocontroller anschließt.

Also kann ich auch Quarz nehmen?

Sollte der bei der Programmierung immer dran sein?

Seh ich das richtig, dass der unter 3 MHz sein muss, oder geht bspw. 
auch ein 4 MHz mit 2 22 pF KOndensatoren?

von Lars H. (hufnala)


Lesenswert?

stefanus schrieb:
> Ich würde einen anderen programmer nehmen. Der USBASP ist für sein
> unzuverlässiges USB Interface bekannt.
>


hi, gibt's da irgendwelche Details dazu? Setze das Teil jetzt Problemlos 
mit meinen 2313 und ATMega (8-16) unter XP und Opensuse Problemlos ein. 
Alles was mal passieren kann, ist dass Linux dass Teil nicht sauber 
erkennt, scheint mir aber an meiner Installation zu liegen, gab es 
früher unter 11.x und XP nicht.

//hufnala

von Эраст Петрович Фандорин (Gast)


Lesenswert?

Stefanus schrieb:
>Das ist nicht richtig.

Das ist richtig. Datenblatt Attiny 25 Seite 26 ff.

Erast Fandorin

von Freddy (Gast)


Lesenswert?

Ich habe den Oszillator jetzt drin. Braucht der eine externe 
Spannungsversorgung, oder reicht die über den USBasp?
Wenn ich den Programmierer jetzt anschließe wird er nämlich nicht mehr 
erkannt.

Muss es jetzt ein Oszilator oder ein Quarz sein, oder ist das egal?

Das mit den Fuses hat sich glaub ich geklärt, die Einstellungen waren 
noch für den alten Tiny13 der vorher verwendet wurde. Jetzt muss ich nur 
gucken, wie ich sie für den Tiny25 setzen muss.

Kann mir noch jemand sagen, was alles auf meine Programmierschaltung 
muss? Ich habe jetzt die einzelnen Pins entsprechend auf die des Sockels 
für µC geleitet und hab zusätzlich VCC und GND auf den Oszillator 
gesetzt. Der OUT davon geht auf XTAL1 am Sockel. Keine Widerstände, 
keine Kondensatoren. Ist das richtig?

Warum wird der Programmierer jetzt nicht mehr erkannt?

Vielen Dank

von D. V. (mazze69)


Lesenswert?

Freddy schrieb:
> Warum wird der Programmierer jetzt nicht mehr erkannt?

Ich möchte dir nicht zu nahe treten, aber kann es sein, dass du das 
Datenplatt des Tiny25 meidest (in dem alle deine Fragen beantwortet 
werden), weil du des Englischen nicht mächtig bist?
BTW: Das Datasheet ist kostenlos.

von Freddy (Gast)


Lesenswert?

D. V. schrieb:
> Ich möchte dir nicht zu nahe treten, aber kann es sein, dass du das
> Datenplatt des Tiny25 meidest (in dem alle deine Fragen beantwortet
> werden), weil du des Englischen nicht mächtig bist?
> BTW: Das Datasheet ist kostenlos.

Ich habe das Datenblatt und (versuche) es auch zu lesen. Was jedoch 
nicht an meinen Englischkenntnissen scheitert, sondern eher an dem 
technischen Verständnis. Und das auf über 200 Seiten.
Wenn dort alle meine Frage beantwortet werden, dann find oder versteh 
ich es wahrscheinlich einfach nicht.

Kann mir trotzdem jemand helfen?

von Axel S. (a-za-z0-9)


Lesenswert?

Freddy schrieb:
> Stefan us schrieb:
>> "Externer Crystal Oscillator" bedeutet bei AVR, dass man einen Quarz
>> (und zwei Kondensatoren) an den Mikrocontroller anschließt.
>
> Also kann ich auch Quarz nehmen?

Ja.

> Sollte der bei der Programmierung immer dran sein?

Nein. Der muß nur so lange dran sein, bis du die CKSEL Fuses wieder auf 
den Wert 0010 zurückgesetzt hast.

> Seh ich das richtig, dass der unter 3 MHz sein muss, oder geht bspw.
> auch ein 4 MHz mit 2 22 pF KOndensatoren?

Alles zwischen 1MHz und 4 bzw. 20MHz sollte funktionieren. Ob 4 oder 
20MHz hängt davon ab, welchen ATtiny25 genau du hast.


Эраст Петрович Фандорин schrieb:
> Stefanus schrieb:
>>Das ist nicht richtig.
> Das ist richtig. Datenblatt Attiny 25 Seite 26 ff.

Schwätzer. Blättere doch bitte mal weiter auf Seite 29. Da steht dann 
nämlich, was mit "Crystal Oscillator" gemeint ist. Tip: es ist nicht 
"externer Kristall-Oszillator".


Stefan us schrieb:
> "Externer Crystal Oscillator" bedeutet bei AVR, dass man einen Quarz
> (und zwei Kondensatoren) an den Mikrocontroller anschließt.

Es gibt keine solche Einstellung. Es gibt "External Clock" und "Crystal 
Oscillator". Letzteres ohne "External".


XL

von Axel S. (a-za-z0-9)


Lesenswert?

Axel Schwenke schrieb:
> Nein. Der muß nur so lange dran sein, bis du die CKSEL Fuses wieder auf
> den Wert 0010 zurückgesetzt hast.

Noch konkreter: bis du die lfuse wieder auf den Defaultwert 0x62 gesetzt 
hast. Datenblatt Seite 153 zeigt dir, was die Bits in lfuse bedeuten.


XL

von Freddy (Gast)


Lesenswert?

Axel Schwenke schrieb:
>> Also kann ich auch Quarz nehmen?
>
> Ja.

Danke, das wars. Hab den Oszillator wieder rausgenommen und nen Quarz 
mit Kondensatoren reingebaut und jetzt hab ich wieder Zugriff. Die Fuses 
wieder auf default zu setzten hatte ich mir auch schon gedacht, ging nur 
schlecht ohne Zugriff ;-)

Nochmals vielen Dank für die Hilfe.

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.