Forum: Mikrocontroller und Digitale Elektronik Attiny 2313 Programmieren


von Lukas (Gast)


Lesenswert?

Hallo,

ich bin gerade dabei mir eine Led Steuerung bauen die von einem Attiny 
2313 gesteurt wird. Der Attiny 2313 ist der erste Mikrocontroller den 
ich flashen will. Ich habe eine Schaltung nach einem Schaltplan gebaut 
und dazu ein hexfile bekommen, das nun auf den Microcontroller muss. 
Außerdem müssen noch Fuse Bits verändert werden. Genau ist es ein Atmel 
ATTiny2313A-PU im DIL. Den Attiny 2313 wollte ich mit einem USBasp 
Programmer (der hier: 
https://guloshop.de/shop/Mikrocontroller-Programmierung/AVR-USB-ISP-Programmer::23.html?XTCsid=0olso2m9vppf6vd22kt18ut0e7 
) und mit Avrdude programmieren. Wenn ich nun in der Cmd den Attiny 
flashen will kommt folgende Fehlermeldung:
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialisation failed, rc=-1
double check connections and try again, or use -F to override this check

Ich habe schon im Forum nach einer Lösung gesucht und gelesen das die 
Flash Frequenz zu hoch ist wenn ich das richtig verstanden habe.

Kann mir bitte jemand erklären, was ich machen muss, damit ich das 
hex-file auf den Attiny bekomme.
Danke im Vorraus Lukas

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


Lesenswert?

Hallo Lukas,

wie sieht der Befehl denn genau aus, mit dem du avrdude aufrufst?

Probiere einfach mal, diese Option anzuhängen, das macht das 
Programmieren langsamer:

-B 60

von Rolf H. (flash01)


Lesenswert?

Hallo Lukas,
wenn ich an die Zeit "USBasp" denke, bekomme ich immer noch graue Haare.
Ich schlag Dir vor, mach Nägel mit Köpfen, und schaffe Dir was 
vernünftiges
an.
D.h. ich habe noch das etwas schon veraltete Studio4 (für mich reichts)
den Programmer AVR isp mkII von www.reichelt.de und eine ISP
Programmier-Schnitstelle auf Lochraster selbst aufgebaut.
Und das läuft und läuft ohne mich um Fuses o.ä. zu kümmern.
Hab damit noch nie Übertragungsprobleme gehabt.
Entscheiden mußt Du es selbst.

Grüße

Rolf

von Lukas (Gast)


Lesenswert?

Hallo und danke für die Antworten, einen neuen Programmer wollte ich 
eigentlich nicht kaufen da ich leider nicht Programmieren kann und 
deswegen auch nicht vorhabe öfters Microcontroller zu programmieren, 
sondern nur diesen einen :)
Ich habe es gerade nochmal mit folgendem Befehl probiert:
avrdude -c usbasp -p attiny2313 -U flash:w:123.hex -B 60

leider kommt jedoch wieder die Fehlermeldung:
avrdude: set SCK frequency to 16000 Hz
avrdude: error: programm enable: target doesnt`t answer . 1
avrdude: initialization failed, rc=-1
Double check connections an try again or use -F to override this check

avrdude done. Thank you.
Ich hoffe ihr könnt mir helfen :)

Gruß Lukas

von Lukas (Gast)


Lesenswert?

Hallo nochmal :)

also gerade habe ich es noch einmal mit einem anderen chip probiert, da 
ich und mein Freund jeweils die Schlatung bauen möchten und dort kam die 
Meldung:
avrdude: set SCK frequence to 16000HZ
avrdude: AVR device initialized and ready to accept instructions

Reading I ############################## I 100% 0.03s

avrdude: Device signature = 0x00ff00
avrdude: Expected signature for Attiny 2313 is 1E 91 0A
Double check chip, or use -F to override this check.

avrdude done. Thank you.

Das heißt ich habe jetzt zwar ein verbindung zu dem chip aber der chip 
ist kaputt sehe ich das richtig? Oder muss nur etwas an dem chip 
eigestellt werden? Das ist schon richtig das man erst den chip 
Programmiert und dann die Fusebits setzt oder?
Danke für eure Hilfe und ich hoffe es klappt noch irgendwann die 
microcontroller zu programmieren aber ich gebe nicht auf :D

Gruß Lukas

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


Lesenswert?

Probier statt "-B 60" mal "-B 600". Kann ja sein, dass der 
Mikrocontroller per Fusebits auf eine sehr langsame Geschwindigkeit 
eingestellt wurde.

Falls das nicht hilft, könnte es sein, dass eine von den 6 
Programmierleitungen nicht verbunden oder falsch verbunden ist.

Befindet sich der ATtiny2313 in einer Schaltung, während du ihn 
programmierst? Falls ja, nimm ihn dazu bitte mal raus.

von Lukas (Gast)


Lesenswert?

Also ich habe es gerade mit -B 600 probiert aber leider wieder das selbe 
:( Hier nochmal die Fehlermeldung


C:\Users\Lukas\Desktop\quadrocopter\MWCLight - MWCPos>avrdude -c usbasp 
-p attin
y2313 -U flash:w:123.hex -B 600

avrdude: set SCK frequency to 1000 Hz
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.12s

avrdude: Device signature = 0xff0f07
avrdude: Expected signature for ATtiny2313 is 1E 91 0A
         Double check chip, or use -F to override this check.

avrdude done.  Thank you.


Und der Microcontroller ist in einer Schaltung aber ich würde ihn ungern 
ausbauen aber falls es nicht anderst geht werde ich das natürlich 
machen.

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


Lesenswert?

Lukas schrieb:
> Und der Microcontroller ist in einer Schaltung aber ich würde ihn ungern
> ausbauen aber falls es nicht anderst geht werde ich das natürlich
> machen.

Magst du den Schaltplan ins Forum hochladen, damit wir schauen können, 
was das Programmieren eventuell verhindert?

Werden die Eingänge/Ausgänge für MOSI, MISO, SCK, RESET auch für andere 
Zwecke genutzt oder sind irgendwie auf GND oder VCC gelegt?

Wie schaut es mit der Versorgungsspannung der Schaltung aus? Wenn die 
Schaltung per Programmer versorgt wird, sollte sie nicht gleichzeitig 
eine eigene Spannungsversorgung besitzen.

von Lukas (Gast)


Lesenswert?

Hallo,
Den Schaltplan will ich nicht hochladen, da ich ihn von jemand aus einem 
anderen Forum bekommen habe und mir nicht sicher bin ob es ok ist wenn 
ich diesen Schaltplan hochlade. MOSI, MISO, SCK, RESET werden nicht für 
andere zwecke verwendet, nur Reset ist über einen 10kohm Widerstand mit 
VCC verbunden und zwischen VCC und GND ist ein 100nf Kondensator aber 
das wird ja keinen Einfluss haben oder? Die Spannungsversorgung habe ich 
nicht über den Programmer sondern über einen Spannungswandler der mit 
12V von einem Netzteil versorgt wird und 5V an den Microcontroller 
ausgibt.

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


Lesenswert?

Lukas schrieb:
> MOSI, MISO, SCK, RESET werden nicht für
> andere zwecke verwendet, nur Reset ist über einen 10kohm Widerstand mit
> VCC verbunden und zwischen VCC und GND ist ein 100nf Kondensator aber
> das wird ja keinen Einfluss haben oder? Die Spannungsversorgung habe ich
> nicht über den Programmer sondern über einen Spannungswandler der mit
> 12V von einem Netzteil versorgt wird und 5V an den Microcontroller
> ausgibt.

Klingt alles gut. :-)

Angeschlossen hast du dann 5 Leitungen, oder?
GND, MOIS, MISO, SCK, RESET.

VCC sollte nicht verbunden werden, wenn die Schaltung eine eigene 
5-Volt-Spannungsversorgung besitzt, GND muss dann aber trotzdem 
verbunden werden.

von Lukas (Gast)


Lesenswert?

Nein Gnd habe ich nicht angeschlossen ist das evtl. der Fehler? Ich 
werde es gleich mal versuchen was passiert wenn ich Gnd vom Programmer 
mit Gnd des Microcontrollers verbinde.

von Lukas (Gast)


Lesenswert?

Oh ich habe gerade noch einmal nachegschaut, GND habe ich doch verbunden 
:D Also am Usbasp sind GND, Mosi,RST, SCK und Miso mit dem Attiny 
verbunden

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Lukas schrieb:
> Oh ich habe gerade noch einmal nachegschaut, GND habe ich doch verbunden
> :D Also am Usbasp sind GND, Mosi,RST, SCK und Miso mit dem Attiny
> verbunden

Dann muß das auch gehen. Kommst Du an die Fuses ?
Für AVRDude gibt's auch ein GUI-Programm, etwas übersichtlicher.

von Lukas (Gast)


Lesenswert?

Wie komme ich an die Fuses? Ich habe das Programm Burn o Mat meinst du 
das mit der GUI für AVRdude? Und danke schon einmal für die ganze hilfe 
es ist sehr nett das du mir hilfst :)

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


Lesenswert?

Auch keine Anschlüsse vertauscht oder so? Dann muss es eigentlich 
funktionieren...

Außer natürlich, du hast vorher irgendwann Fusebits wie z.B. RSTDISBL 
auf 0 gesetzt.

von Lukas (Gast)


Lesenswert?

Nein die Anschlüsse habe ich mehrmals kontrolliert kann es vllt sein das 
der Microcontroller defekt ist? Und dann den Fusebits habe ich 
eigentlich nichts verändert kann ich die auslesen indem ich in Burn o 
Mat bei Fuses read anklicke?

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Lukas schrieb:
> Nein die Anschlüsse habe ich mehrmals kontrolliert kann es vllt sein das
> der Microcontroller defekt ist? Und dann den Fusebits habe ich
> eigentlich nichts verändert kann ich die auslesen indem ich in Burn o
> Mat bei Fuses read anklicke?

Ja.

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


Lesenswert?

Lukas schrieb:
> Nein die Anschlüsse habe ich mehrmals kontrolliert kann es vllt sein das
> der Microcontroller defekt ist?

Klar, auch sowas hats schon gegeben. ;-)
Mikrocontroller defekt, Programmer defekt, Kabel defekt - kam alles 
schon mal vor.

> Und dann den Fusebits habe ich
> eigentlich nichts verändert kann ich die auslesen indem ich in Burn o
> Mat bei Fuses read anklicke?

Mit Read kannst du normalerweise nichts kaputt machen. Aber wenn avrdude 
nicht einmal die Gerätesignatur zuverlässig lesen kann, wird es 
wahrscheinlich auch nicht möglich sein, die Fusebits korrekt zu lesen.

von Oliver _. (verleihnix)


Lesenswert?

Ich wollte nach langem wieder ein Tiny26 brennen, nun auch mit dem 
USBasp, er wurde zwar erkannt, aber nichts rein gebrannt.

Gleiche Hardware aber über LPT Port wie früher und alles lief sofort.

Evt taugt der USBasp nix für die älteren.

Brenne mal über LPT-Port (www.rowalt.de) und baue ein ISP Adapter, ist 
ja schnell gemacht.

von Lukas (Gast)


Lesenswert?

Also ein Haken ist bei Spien, CKDIV8, Suto0, CKSEL3, CKSEL1,CKSEL0
aber ich bin mir nicht ganz sicher ob das die ausgelesenen Werte sind, 
da ich keinen Programmer auswählen kann, es kommt jedoch keine 
Fehlermeldung

von Lukas (Gast)


Lesenswert?

Wenn ich den Programmer entferne zeigt er mir das gleiche an wenn ich 
auf read drücke :(

von Martin K. (maart)


Lesenswert?

Bleibt die Signatur denn immer gleich, oder ändert sie sich beim 
Auslesen?

von Dominik S. (dasd)


Lesenswert?

Lukas schrieb:
> Nein die Anschlüsse habe ich mehrmals kontrolliert kann es vllt sein das
> der Microcontroller defekt ist?

Ja klar... sein kann viel...
Aber für sehr wahrscheinlich halte ich das nicht, vor allem, da du ja 
jetzt schon den zweiten ausprobiert hast.
Einer tut gar nichts, beim anderen liest du nur irgend eine falsche 
Signatur.
Ich würde eher vermuten bzw. folgern, dass du

a) Irgend wo noch einen Leichtsinnsfehler eingebaut hast

oder

b) der Programmer bzw. das Kabel was hat.

Wobei ich a) für wahrscheinlicher halte :)
Passiert schon mal, wenn man sowas noch nie gemacht hat.

von Lukas (Gast)


Lesenswert?

Was müsste denn passieren wenn alles richtig angeschlossen ist und ich 
in Burn o Mat die Fuses auslesen will dazu muss ich doch zuerst einmal 
den Programmer also USBASP auswählen oder? Weil ich kann dort keinen 
Programmer auswählen!

von Lukas (Gast)


Lesenswert?

Das ist mir jetzt echt peinlich :D ich habe es geschafft den einen Chip 
zu flashen denke ich zumindest vielen vielen dank vor allem für den Tip 
mit -B 60 ich bin dir wirklich extrem Dankbar! Also ich habe es jetzt 
noch einmal probiert mit beiden chips und mehrfach nachgemessen ob 
durchgang herscht und folgenede Meldung erhalten:

avrdude: set SCK frequency to 16000 Hz
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.03s

avrdude: Device signature = 0x1e910a
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be 
performe

         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: set SCK frequency to 16000 Hz
avrdude: reading input file "123.hex"
avrdude: input file 123.hex auto detected as Intel Hex
avrdude: writing flash (1388 bytes):

Writing | ################################################## | 100% 
3.77s



avrdude: 1388 bytes of flash written
avrdude: verifying flash memory against 123.hex:
avrdude: load data flash data from input file 123.hex:
avrdude: input file 123.hex auto detected as Intel Hex
avrdude: input file 123.hex contains 1388 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 
3.21s



avrdude: verifying ...
avrdude: 1388 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.


Bei dem 2ten chip gehe ich jedoch von einem defekt aus ich werde es zwar 
noch ein paar mal versuchen aber dort kommt immer die selbe Meldung. 
Kansst du mir vllt nur noch das erklären
Das DIV8 Fusebit ist bei einem neuen 2313 serienmässig gesetzt, also 
musst du den "Harken"
an diesem dann entfernen und dann die Fusebit´s wieder in den Controller 
schreiben.

Wie geht das?

von Lukas (Gast)


Lesenswert?

Also ich konnte jetzt den USbasp auswählen wenn ich aber reading fuses 
klicke kommt error reading fuses und der USBASP leuted kurz rot:/ muss 
ich evtl bei additional options -B 60 einfügen?

von Lukas (Gast)


Lesenswert?

Ok also so schnell kannst du wohl nicht Antworten ich schreibe es hier 
falls es jemand anderen interessiert es hat geklapp wenn ich bei 
additional options -B 60 eingefügt habe!

Also ich möchte mich nochmal Herzlich für deine Hilfe bedanken und bin 
dir sehr Dankbar :)

Gruß Lukas

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Das B 60 bestimmt die Geschwindigkeit der Datenübertragung.
Klar gilt das für jede Übertragung ;)

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.