Forum: Mikrocontroller und Digitale Elektronik USBasp+AVRdude+libusb=MEGA-STRESS


von Johannes (menschenskind)


Lesenswert?

Hallo

Problem: Bekomme bei der Auswahl der "Programmer" mittels 
AVRdude-GUI.exe den USBasp nicht angezeigt, obwohl ich die korrekten 
Treiber installiert habe. Vista erkennt den Programmer sofort.

Nachdem ich libusbwin32 installiert hatte, hat diese Scheißsoftware 
erstmal komplett alle! USB-Ports meines Rechners lahmgelegt, mehrfacher 
Neustart und Abgesicherter Modus brachten keine Besserung, erst die 
letzte funktionierende Konfig. brachte Erlösung.

Nach dieser Install funktioniert klappte das Erkennen des Usbasp, auf 
dem auch nur die rote LED leuchtet, immer noch nicht

Hatte echt gedacht, dass das die kleinste Hürde auf dem Weg zur 
Programmierung sein würde und nicht haufenweise Zeit für diese bekackte 
Suche nach hunderten Extraprogrämmchen draufgehen würde, die dann auch 
noch den Rechner lahmlegen.

Ich hoffe, ihr könnt mir helfen, bin echt grad am Ende.
Dankeschön

von Martin (Gast)


Lesenswert?

Hallo,

am besten immer erst lesen (hier im Forum oder Google) und dann was 
probieren oder installieren !!

ich hab auch den USBasp (soger selber gebaut) und bis her gar kein 
Problem weder unter XP noch Vista!
So, unter Vista habe ich einfach den "normaller" Trebier installiert 
kein LibUSB oder so was.

mit folgender AVRGUI geht es einwandfrei (kein Werbung):

http://www.soft-land.de/index.php?page=avrburner


Gruß
Martin

von Johannes (menschenskind)


Lesenswert?

Hallo

natürlich habe ich gegoogelt, aber es erschien mir sinnvoller die 
software zu nehmen, die der entwickler auch auf seiner seite verlinkt 
hat.

Habe jetzt Avrburner drauf, Device auf m32 gestellt, Programmer ist 
usbasp und Port ist USB.
--> Return-Code des Programms: 1
---Errors---
error at 
C:\Mikrocontrollerprogrammierung\WinAVR-20080610\bin\avrdude.conf:385 
unrecognized character: "u"

Was ist mein nächster Schritt?

Danke im Voraus

von Martin (Gast)


Lesenswert?

Hallo,
hast du den Ordner von AVRDUDE in AVRBurner eingestellt??

von Johannes (menschenskind)


Lesenswert?

Ja, das hab ich gleich gemacht, da das ja auch Grundvoraussetzung bei 
der anderen GUI war.

Ein Kumpel hat mir noch PonyProg2000 empfohlen.
Wie stehst du dazu?
(Damit komm ich aber auch nicht klar, da haperts schon mit dem 
Interface-Setup)

AVR-Dude ist ja bloß die eine .exe, oder? Zumindest für windows, denn 
wenn ich dem Standard-Downloadlink folge gibts da ein Archiv in dem 
haufenweise uncomilierter Quellcode steckt.

von Martin (Gast)


Lesenswert?

also in AVRBurner \Einstellungen\Optionen dann "Pfad zu AVRDUDE.exe"

in dein Fall glaube:

C:\Mikrocontrollerprogrammierung\WinAVR-20080610\bin\avrdude.exe

und versucht noch mal, dann Fehler hier posten

Gruß

von Martin (Gast)


Lesenswert?

so viel ich weist funktioniert PoniProg2000 nicht mit USBasp!
USBasp funktioniert mit AVRDUDE, AVRBurner und noch was, ich betreibe es 
mit AVRDUDE und Burner und funktioniert tadelos

von Martin (Gast)


Lesenswert?

hast du den USBasp gekauft? selber gebaut? als Bausatz gekauft ????

von Johannes (menschenskind)


Lesenswert?

Ok, das hat er schon mal gefressen.

Return-Code des Programms: 1
---Errors---
avrdude.exe: WARNING: -E option not supported by this programmer type
avrdude.exe: error: could not find USB device "USBasp" with vid=0x16c0 
pid=0x5dc

Danke, da sind wir ja schon weiter.
Das ist ein professionell Selbstgebauter, den ich bei Ebay ersteigert 
habe.
von Jantek
Jumper 1 ist ON, die anderen beiden OFF
Die rote LED leuchtet.

von Martin (Gast)


Lesenswert?

>> Jumper 1 ist ON, die anderen beiden OFF
On bedeutet gebrück?? oder?
wenn ja dann weg mit dem Jumper, alle mussen OFF sein (kein Brücke)

von Martin (Gast)


Lesenswert?

Und  ???

hat funktioniert oder nicht?? es sollte schon gehen!

von Johannes (menschenskind)


Lesenswert?

nix neues, leider

ich hab mal vom Flash lesen geklickt:
Return-Code des Programms: 1
---Errors---
avrdude.exe: WARNING: -E option not supported by this programmer type
avrdude.exe: error: could not find USB device "USBasp" with vid=0x16c0 
pid=0x5dc

Die angegebene Jumperstellung war so voreingestellt.

Das Gerät steht im Gerätemanager als Jungo drin, das ist doch i.O. oder?

Die rote LED leuchtet bei allen 3 Jumpern OFF immer noch.

Was ist denn eigentlich der Standardzustand bei korrekter Verbindung? 
Leuchtet da die Grüne oder sind Beide aus?

von Martin (Gast)


Angehängte Dateien:

Lesenswert?

also mal von ganz vorne.
LEDs:
- es soll der rote LED leuchten wenn mann der USBasp an USB anschliesst, 
also imme an
- grunes LED leuchtet wenn man ein Programm an Board überträgt, also aus

im Gerätemanager soll der Programmer als:
USBasp erscheinen " siehe Bild "

ist es so bei dier???

von Johannes (menschenskind)


Angehängte Dateien:

Lesenswert?

Nein, siehe Bild, aber das sind die Treiber von der fischl-homepage.
Aber ich probiers noch mal neu.

von Martin (Gast)


Lesenswert?

warte warte!
 erst mal langsam last mich mal überlegen und melde mich gleich

von Johannes (menschenskind)


Lesenswert?

Ne, hab mich verguggt, hab auch dasselbe wie auf deinem Bild.

von Martin (Gast)


Lesenswert?

das selber wie auf welches Bild? auf meine???

von Johannes (menschenskind)


Lesenswert?

ja libusb...usw.

Will meinen, das Gerät ist korrekt installiert.

von Martin (Gast)


Angehängte Dateien:

Lesenswert?

installiere bitte den Treiber im Anhang wie folgt:

irgendwo auspacken, dann in Gerätemanager USBasp dann Treiber dann 
Treiber aktualisieren dann Pfand eingeben und auf ok usw.

von Martin (Gast)


Lesenswert?

oder dann Treiber deinstallieren, Rechner neu starten USBasp einstecken 
und "neu" treiber installieren

von Johannes (menschenskind)


Lesenswert?

Das hat schon mal einiges gebracht.

Nach dieser Fehlermeldung zu urteilen, scheint jetzt erstmal alles zu 
funktionieren, nur meine Platine macht noch Stress.

Ich hab nämlich das Problem, dass ich als Buchse für den ISP-Stecker nur 
eine simple Stiftleiste habe, also nicht weiß, wo die Nase des Steckers 
hin muss.


Return-Code des Programms: 1
---Errors---
avrdude.exe: WARNING: -E option not supported by this programmer type

avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1
             Double check connections and try again, or use -F to 
override
             this check.


avrdude.exe done.  Thank you.


Hab den Stecker grad mal rumgedreht und die Fusebits auslesen lassen, 
ist das soweit OK?




vrdude.exe: WARNING: -E option not supported by this programmer type
             Using Port            : USB
             Using Programmer      : usbasp
             AVR Part              : ATMEGA32
             Chip Erase delay      : 9000 us
             PAGEL                 : PD7
             BS2                   : PA0
             RESET disposition     : dedicated
             RETRY pulse           : SCK
             serial program mode   : yes
             parallel program mode : yes
             Timeout               : 200
             StabDelay             : 100
             CmdexeDelay           : 25
             SyncLoops             : 32
             ByteDelay             : 0
             PollIndex             : 3
             PollValue             : 0x53
             Memory Detail         :

                                      Block Poll               Page 
Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size 
#Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- 
------ ----- ----- ---------
               eeprom         4    10    64    0 no       1024    4 
0  9000  9000 0xff 0xff
               flash         33     6    64    0 yes     32768  128 
256  4500  4500 0xff 0xff
               lfuse          0     0     0    0 no          1    0 
0  2000  2000 0x00 0x00
               hfuse          0     0     0    0 no          1    0 
0  2000  2000 0x00 0x00
               lock           0     0     0    0 no          1    0 
0  2000  2000 0x00 0x00
               signature      0     0     0    0 no          3    0 
0     0     0 0x00 0x00
               calibration    0     0     0    0 no          4    0 
0     0     0 0x00 0x00

             Programmer Type : usbasp
             Description     : USBasp, http://www.fischl.de/usbasp/

avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1
             Double check connections and try again, or use -F to 
override
             this check.


avrdude.exe done.  Thank you.

von Martin (Gast)


Lesenswert?

Hallo,

______________________________________________________________________
avrdude.exe: WARNING: -E option not supported by this programmer type

avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1
             Double check connections and try again, or use -F to
override
             this check.


avrdude.exe done.  Thank you.
_____________________________________________________________________

so,
das sieht aber ganz anderes aus oder?
also der USBasp "ist schon drin" besser gesagt funktioniert jetzt hängt 
wo anders "ABER"
es kann auch sein das die geschwindigkeit zu hoch ist (nur zum erste 
mal) also:
--  Die Geschwindigkeit des Programmers mit JP2 einmalig für die erste 
Programmierung des µC reduzieren.
--  UND Alle Verbindungen kontrollieren: Belegung, Kabelbruch, 
Kurzschluß, Leitungslänge, ...

von Johannes (menschenskind)


Lesenswert?

Hab erstmal vielen Dank!

Toll von dir, dass du dich so reingehängt hast.

Morgen check ich den Rest, muss jetzt langsam schlafen gehen.

Bis dahin, bye

von Martin (Gast)


Lesenswert?

alles klar

Gruß
Martin

von Johannes (menschenskind)


Lesenswert?

So da bin ich wieder

Was sagen mir denn diese Werte?
Vor allem was bedeutet: Check you connections?

Kann ich den USBasp auch im AVR-Studio nutzen und wenn ja, wie?

avrdude.exe: Version 5.5, compiled on Jun  9 2008 at 14:32:04
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

             System wide configuration file is 
"C:\Mikrocontrollerprogrammierung\WinAVR-20080610\bin\avrdude.conf"

avrdude.exe: WARNING: -E option not supported by this programmer type
             Using Port            : USB
             Using Programmer      : usbasp
             AVR Part              : ATMEGA32
             Chip Erase delay      : 9000 us
             PAGEL                 : PD7
             BS2                   : PA0
             RESET disposition     : dedicated
             RETRY pulse           : SCK
             serial program mode   : yes
             parallel program mode : yes
             Timeout               : 200
             StabDelay             : 100
             CmdexeDelay           : 25
             SyncLoops             : 32
             ByteDelay             : 0
             PollIndex             : 3
             PollValue             : 0x53
             Memory Detail         :

                                      Block Poll               Page 
Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size 
#Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- 
------ ----- ----- ---------
               eeprom         4    10    64    0 no       1024    4 
0  9000  9000 0xff 0xff
               flash         33     6    64    0 yes     32768  128 
256  4500  4500 0xff 0xff
               lfuse          0     0     0    0 no          1    0 
0  2000  2000 0x00 0x00
               hfuse          0     0     0    0 no          1    0 
0  2000  2000 0x00 0x00
               lock           0     0     0    0 no          1    0 
0  2000  2000 0x00 0x00
               signature      0     0     0    0 no          3    0 
0     0     0 0x00 0x00
               calibration    0     0     0    0 no          4    0 
0     0     0 0x00 0x00

             Programmer Type : usbasp
             Description     : USBasp, http://www.fischl.de/usbasp/

avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1
             Double check connections and try again, or use -F to 
override
             this check.


avrdude.exe done.  Thank you.

von Johannes (menschenskind)


Lesenswert?

Reading | ################################################## | 100% 
0.02s

avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes!  Invalid device signature.
             Double check connections and try again, or use -F to 
override
             this check.


avrdude.exe done.  Thank you.


das ist jetzt noch das Problem, was schlägst du vor?

von Martin (Gast)


Lesenswert?

Hi,

also der USBasp ist auf jedem Fall schon ok, hat verbindung.

>> Was sagen mir denn diese Werte?
>> Vor allem was bedeutet: Check you connections?

das ist schon klar, USBasp wir initializiert und ist bereits zum 
übertragen oder flashen ABER er findet kein Board, also wie da steht, du 
muß deine Verbindunge überprüfen, dass alles iO ist, alle Pins wie es 
gehört usw. manchmal (wenn der Controller neu ist) muß man an der USBasp 
der jumper JP2 einmalig setzen

Gruß

von Johannes (menschenskind)


Lesenswert?

Hab den Jumper 2 gesetzt, aber da leuchtet dann die rote LED nicht mehr 
und der Programmer wird als unbekanntes Gerät geführt

Ich habe aber mal testweise ein .hex-File in den EEPROM geschrieben und 
das wurde ohne Beanstandung ausgeführt.

Ich hab meine Schaltung im übrigen so aufgebaut:

[http://www.roboternetz.de/wissen/images/3/30/Avrtutorial_grundschaltung_mitquarz.gif]

von Johannes (menschenskind)


Lesenswert?

jetz wollt ich etwas veränderten Code in den EEprom schreiben:

Reading | ################################################## | 100% 
0.79s

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
             0x0c != 0x00
avrdude.exe: verification error; content mismatch

avrdude.exe: safemode: lfuse changed! Was e1, and is now 0

hab keine Ahnung was der will.

Auch funktioniert das lesen und schreiben nur, wenn Jumper1 gesetzt ist, 
obwohl die Schaltung ja von extern versorgt wird.

von Martin (Gast)


Lesenswert?

ja, dan ist was am USBasp verkehr (Hardware) denke ich weil:

- JP1 wird nur zum Programmieren des Atmel auf dem USB Atmel SPI 
Programmers benötigt (ATmega8 ???).
- JP2 wählt die Geschwindigkeit zum Programmieren der Zielhardware aus.
- Mit JP3 kann die Zielhardware über den USB Port mit Strom versorgt 
werden (nicht empfohlen).

>> avrdude.exe: safemode: lfuse changed! Was e1, and is now 0

Achtung das sind Fuse Einsgellungen und wenn man da falsch macht bwz. 
ein Falsches Fuse setzt kann man manchmal der Controller nicht mehr 
ansprechen!! Vorsich !

von Johannes (menschenskind)


Lesenswert?

Ich dachte die Jumper sind so wie nach dem Bild 
bei[http://www.fischl.de/usbasp/] gekennzeichnet.

Ich hab nen Quarz mit 2 Kondensatoren dran, deshalb hab ich die Fuses so 
gesetzt, wie im Datenblatt des Atmega32 angegeben.

von Martin (Gast)


Lesenswert?

eigentlich sind die Originalle Jumper wie bei 
http://www.fischl.de/usbasp/ gekennzeichnet, ABER gibt es ein Paar 
varianten meine zB. sind nicht ganz so, hast du pläne für dein USBasp 
erhalten? da soll genau stehen!

>> Ich hab nen Quarz mit 2 Kondensatoren dran, deshalb hab ich die Fuses so
>> gesetzt, wie im Datenblatt des Atmega32 angegeben.

du hast dan die Fuses schon gesetzt!! also dein USBasp läft ! könte sein 
das du eine fals gesetzt hast? und deswegen bekommts du jetzt keine 
verbindung? hast ein Foto oder Bild wie du die Fuse gesetz hast?

kanns tu die Fuse (mit AVRBurner) lesen? wenn ja dann was kommt??

von Johannes (menschenskind)


Lesenswert?

naja, das Fuse auslesen hat irgendwie noch kein einziges mal geklappt.

In dem kleinen Fenster gehen dann alle Häkchen an und im Ausgabefenster 
steht wie eh und je:
avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1
             Double check connections and try again, or use -F to 
override
             this check.

Auf der Platine aufgedruck und sich wohl auf die Jumper beziehend steht 
"Supply " neben Nummer 3 und "Slow SCK" neben der 1

Und für Jumper 2 bleibt ja nur ein was übrig.

von Martin (Gast)


Lesenswert?

also,
Jumper 1 setzen und die andere 2 offen, dann noch mal probieren (fuse 
einlesen)

von Johannes (menschenskind)


Lesenswert?

Oha, mal was neues, sieht aber meines Erachtens ganz in Ordnung aus.
Kannst du mir noch ein paar Tipps geben zum Setzen der Fuses?

Return-Code des Programms: 0
---Output---
avrdude.exe: safemode: lfuse reads as E1
avrdude.exe: safemode: hfuse reads as DF
avrdude.exe: safemode: lfuse reads as E1
avrdude.exe: safemode: hfuse reads as DF
---Errors---

avrdude.exe: Version 5.5, compiled on Jun  9 2008 at 14:32:04
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

             System wide configuration file is 
"C:\Mikrocontrollerprogrammierung\WinAVR-20080610\bin\avrdude.conf"

avrdude.exe: WARNING: -E option not supported by this programmer type
             Using Port            : USB
             Using Programmer      : usbasp
             AVR Part              : ATMEGA32
             Chip Erase delay      : 9000 us
             PAGEL                 : PD7
             BS2                   : PA0
             RESET disposition     : dedicated
             RETRY pulse           : SCK
             serial program mode   : yes
             parallel program mode : yes
             Timeout               : 200
             StabDelay             : 100
             CmdexeDelay           : 25
             SyncLoops             : 32
             ByteDelay             : 0
             PollIndex             : 3
             PollValue             : 0x53
             Memory Detail         :

                                      Block Poll               Page 
Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size 
#Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- 
------ ----- ----- ---------
               eeprom         4    10    64    0 no       1024    4 
0  9000  9000 0xff 0xff
               flash         33     6    64    0 yes     32768  128 
256  4500  4500 0xff 0xff
               lfuse          0     0     0    0 no          1    0 
0  2000  2000 0x00 0x00
               hfuse          0     0     0    0 no          1    0 
0  2000  2000 0x00 0x00
               lock           0     0     0    0 no          1    0 
0  2000  2000 0x00 0x00
               signature      0     0     0    0 no          3    0 
0     0     0 0x00 0x00
               calibration    0     0     0    0 no          4    0 
0     0     0 0x00 0x00

             Programmer Type : usbasp
             Description     : USBasp, http://www.fischl.de/usbasp/

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.02s

avrdude.exe: Device signature = 0x1e9502
avrdude.exe: reading lfuse memory:

Reading | ################################################## | 100% 
0.01s

avrdude.exe: writing output file "C:\Users\Hannes\Documents\Eigene 
Projekte\Mein MP3-Player\Software\AVRBurner\lfuse.hex"
avrdude.exe: reading hfuse memory:

Reading | ################################################## | 100% 
0.01s

avrdude.exe: writing output file "C:\Users\Hannes\Documents\Eigene 
Projekte\Mein MP3-Player\Software\AVRBurner\hfuse.hex"

avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.

von Martin (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

>> Oha, mal was neues, sieht aber meines Erachtens ganz in Ordnung aus.

ja, jetzt sieht ganz gut aus, du hast "komunikation" zwischen USBasp und 
Board und so muß es immer ausehen, ich meine mit:

>> ---Output---
      avrdude.exe: safemode: lfuse reads as E1
      avrdude.exe: safemode: hfuse reads as DF
      avrdude.exe: safemode: lfuse reads as E1
      avrdude.exe: safemode: hfuse reads as DF

das ist der aktuelle Stand der Fuses


>> avrdude.exe: WARNING: -E option not supported by this programmer type
             Using Port            : USB
             Using Programmer      : usbasp
             AVR Part              : ATMEGA32
             Chip Erase delay      : 9000 us
             PAGEL                 : PD7
             BS2                   : PA0
             RESET disposition     : dedicated
             RETRY pulse           : SCK
             serial program mode   : yes
             parallel program mode : yes

hier würde alles erkannt: Programmer, Board (Atmega32) usw.


>> avrdude.exe: AVR device initialized and ready to accept instructions
>> Reading | ################################################## | 100%
>> 0.02s

hier würde der USBasp initialisiert und ist bereit zum flashen!!

>> Kannst du mir noch ein paar Tipps geben zum Setzen der Fuses?

Tja, Johannes,
ich bin Anfänger genau wie du nur bin Paar schritte weiter mehr nichts 
mit dem Fuses habe ich leider schon ein Controller kaput gemacht bzw. 
ich kann der Controller nicht mehr ansprechen deswegen bin ich aber echt 
vorsicht damit geworden!!

hast du hier schon gelesen??
http://www.mikrocontroller.net/articles/AVR_Fuses (sehr wichtig!!!)

hier kannst du die entsprechender Fuse einstellungen eines Controllers 
mit ein Externe bzw. Interne Quarz usw. vornehmen
http://www.engbedded.com/cgi-bin/fc.cgi

und "immer" erst Fuse "lesen" entsprechender Fuse einstellungen 
vornehmen und dann schreiben

zB. für ein Atmega32 mit einem Quarz 14,7456 würde ich die Fuses wie im 
Bild einstellen bzw. so habe ich es.

Gruß

von Johannes (menschenskind)


Lesenswert?

Hallo Ich habe nen 16 MHz-Quarz. Bleiben die Fuse-Einstellungen genauso 
wie bei Dir?
Hier mal ein Screenshot der meiner ausgelesenen.

Aber das Schreiben klappt irgendwie nicht. Es kommt der folgende Text 
und dann schmiert AVR-Dude ab-->APPCRASH und die rote und die grüne LED 
leuchten dauerhaft.


Reading | ################################################## | 100% 
0.02s

avrdude.exe: Device signature = 0x1e9502
avrdude.exe: erasing chip
avrdude.exe: reading input file "C:\Users\Hannes\Documents\Eigene 
Projekte\Mein MP3-Player\Prog-Files\default\MP3-Player.hex"
avrdude.exe: input file C:\Users\Hannes\Documents\Eigene Projekte\Mein 
MP3-Player\Prog-Files\default\MP3-Player.hex auto detected as Intel Hex
avrdude.exe: writing eeprom (180 bytes):

Writing | ################################################## | 100% 
2.61s

avrdude.exe: 180 bytes of eeprom written
avrdude.exe: verifying eeprom memory against 
C:\Users\Hannes\Documents\Eigene Projekte\Mein 
MP3-Player\Prog-Files\default\MP3-Player.hex:
avrdude.exe: load data eeprom data from input file 
C:\Users\Hannes\Documents\Eigene Projekte\Mein 
MP3-Player\Prog-Files\default\MP3-Player.hex:
avrdude.exe: input file C:\Users\Hannes\Documents\Eigene Projekte\Mein 
MP3-Player\Prog-Files\default\MP3-Player.hex auto detected as Intel Hex
avrdude.exe: input file C:\Users\Hannes\Documents\Eigene Projekte\Mein 
MP3-Player\Prog-Files\default\MP3-Player.hex contains 180 bytes
avrdude.exe: reading on-chip eeprom data:

Reading | ################################################## | 100% 
0.80s

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
             0x0c != 0x00
avrdude.exe: verification error; content mismatch

avrdude.exe: safemode: lfuse changed! Was e1, and is now 0

von Martin (Gast)


Lesenswert?

Hi,
und was kommt wend du liest?? wie sind momentan die Fuses kanns du ein 
Bild machen?

von Martin (Gast)


Lesenswert?

ich glaube er hat schon die die Fuse gesetz (glaube), versucht jetz 
folgendes:

Jumper 1 weg und ein Program (egal was) flashen, was passiert dann?

von Johannes (menschenskind)


Lesenswert?

ohne Jumper 1 geht nix


avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1

von Martin (Gast)


Lesenswert?

ok dann sind vielleicht di Fuse noch nicht gesetz, liest mal bitte und 
guckmal was kommt bzw welche Häckchen

von Johannes (menschenskind)


Lesenswert?

Super, jetzt hats funktioniert.

Nun ist nur noch das Problem, warum das hier nicht funktioniert.
Wär toll, wenn du mir auch da aushelfen könntest.

Ich hab 2 LEDs die hängen an VCC und nem Widerstand an den beiden Ports 
und sollen blinken.
1
#include <avr/io.h>  
2
#include <util/delay.h>  
3
4
5
6
int main (void){
7
8
  DDRC  = 0x00;            
9
  DDRA  = 0x00;        
10
   
11
12
  while(1){
13
14
    
15
    PORTA |= (1<<PA0);
16
    PORTC &= ~(1<<PC4);
17
18
    _delay_ms(50);
19
20
    PORTC |= (1<<PC4);
21
    PORTA &= ~(1<<PA0);    
22
23
    _delay_ms(50);
24
25
  }
26
  return(0);
27
}

von John S. (linux_80)


Lesenswert?

Hi,

Du schreibst Du hast einen 16MHz Quarz !
Es muss aber genau ein 12MHz sein, damit das mit dem USB klappt, also 
auf dem USBasp !

PS:
Wenn PortC auf einem M32 nicht ganz geht, immer nach JTAG
(De-)aktivierung schauen.

von Johannes (menschenskind)


Lesenswert?

aber er hat das Hex-File doch jetzt ohne Anstalten in den Prom 
geschrieben.

Warum sollt ich da den Quarz wechseln?

von Martin (Gast)


Lesenswert?

Hallo,

@Tiny 80
>> Es muss aber genau ein 12MHz sein, damit das mit dem USB klappt, also
>> auf dem USBasp !

er mein auf dem USBasp NICHT auf dem Board, also ist alles ok nun sollte 
jetzt mit dem Fuse klappen sonst passiert das Tiny schreibt.

>> Wenn PortC auf einem M32 nicht ganz geht, immer nach JTAG
>> (De-)aktivierung schauen.

also Fuses richtig setzen

von Martin (Gast)


Lesenswert?

versucht noch mal die Fuse setzen, also erst mal Fuse lesen und 
schreiben

von Johannes (menschenskind)


Lesenswert?

Aber der Code ist so erstmal richtig, oder wie? Aber warum leuchten denn 
dann beide! nicht?

Es ist doch so, wenn ich das Programm geladen habe und die 
Stromversorgung meiner Schaltun aus und dann wieder anmache, dass das 
Programm dann laufen müsste, oder?

von Martin (Gast)


Lesenswert?

Sorry habe ich nicht gesehen:

DDRC  = 0x00;
DDRA  = 0x00;

Port A und C sind aber auf Eingänge geschaltet !!
auf Ausgang soll dann

DDRC  = 0xFF;
DDRA  = 0xFF;

von Johannes (menschenskind)


Lesenswert?

mmmh, klappt irgendwie nicht...

Also ich hab das AVR-Studio, da klick ich auf Build und dann auf Compile 
und dann lad ich meine .hex-Datei in den AVR-Burner.

Ist das so korrekt? Nicht dass es da schon hapert und wir suchen hier 
stundenlang woanders nach dem Fehler.

von Martin (Gast)


Lesenswert?

so ist es Richtig!

versucht mal mit:

#include <avr/io.h>

int main (void) {

DDRA = (1<<PD0)|(1<<PD1)|(1<<PD2)|(1<<PD3)|(1<<PD4)|(1<<PD5)|(1<<PD6);
PORTA = (1<<PD4);

  while(1) {
     /* "leere" Schleife*/;
   }

   /* wird nie erreicht */
   return 0;
}

es muß ja mindenstens der Led am Port 4 brenen

von Johannes (menschenskind)


Lesenswert?

Schade, hat leider nicht gefruchtet.

Wie gesagt, die LEDs hängen über nen Widerstand an den 5 Volt dran und 
dann gehts ab in den uC.
Deswegen dachte ich ja auch, die Ports müssten als Eingänge geschaltet 
werden, da der Strom ja in den uC reinfließt und dann zur Masse hin.

von Martin (Gast)


Lesenswert?

was für Board hast du? hast du es selber gebaut hast? gekauft ?? bitte 
hier berichten und wenn möglich ein Bild machen

>> Wie gesagt, die LEDs hängen über nen Widerstand an den 5 Volt dran und
>> dann gehts ab in den uC.

Sind die LEDs richtig angeschlossen??

>> Deswegen dachte ich ja auch, die Ports müssten als Eingänge geschaltet
>> werden, da der Strom ja in den uC reinfließt und dann zur Masse hin.

Ne ne, LEDs --> Ausgänge
       SCHALTER --> Eingänge

hier mal unter HARDWARE lesen:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen

und hier:
Beitrag "elementare Frage LED an AVR"

von Johannes (menschenskind)


Angehängte Dateien:

Lesenswert?

Bittesehr!

Und die Verkabelung wie bereits gesagt, laut dem Tutorial vom 
Roboternetz.

von Christian R. (supachris)


Lesenswert?

Das DA überhaupt irgendetwas geht, grenzt an ein Wunder. Eine 
zuverlässige Funktion bekommt man damit nicht hin....

von Martin (Gast)


Lesenswert?

Hallo Christian R.

man sollte "HELFEN" statt "kritisieren" oder warst du nie ein Anfänger?
du bis geboren und könntest du schon alles oder?????

von Johannes (menschenskind)


Lesenswert?

So Christian, du unqualifizierte Knallbirne, wenn du nichts zur 
Problemlösung beitragen kannst, such bitte das Weite und beläsitge uns 
nicht mit deiner Arroganz und Dummdreistigkeit!
Trottel!

@ Martin

Zur Erläuterung: Das ganze Kabelgewirr da rechts im Bild kannst du 
getrost außer acht lassen.

von Martin (Gast)


Lesenswert?

Hallo Johannes,

nichts gegen dein Schaltung aber als Anfänger würde ich in deine Stelle 
ein fertiges Board kaufen (kosten ja nicht die Welt) auf der Grund das 
man "am Anfag" weniger stress hat, danach kan man dann selber 
schaltungen usw. machen zu mindenstens so habe ich es gemacht und bis 
jetzt hat es sehr gut funktioniert oder  zB. statt Lochraster Platine 
kan man auch sein Schaltung auf Steckbrett bauen so kann man Fehler 
leicht korrigieren.

Du hast zB. kein Spannungsregler in deine Schaltung und wenn die 
Spannung etwas höher (als 5V) ist dann ist mit dein Atmega gleich 
vorbei.

wenn du erfahrung mit Löten kannst dann kannst du ein Bausatz kaufen 
wenn nicht dann ein fertiges Board kaufen, wie gesagt kosten ja nicht 
viel und hier im Forum kannst du sogar einige günstig kaufen ich kann 
dir paar Beispiele von Boards nennen

Gruß

von Christian R. (supachris)


Lesenswert?

Dann präzisiere ich: Mit so einem Aufbau wird es schwer, zuverlässige 
Funktionen zu erreichen, der Quarz ist etwas weit weg vom Controller, 
und ich sehe auch keinerlei Abblockkondensatoren direkt am AVR. Und ja, 
ich war auch mal Anfänger und hab solche Schaltungen gebaut, mich dann 
auch gewundert, dass es nicht ordentlich ging, und mir dann ganz schnell 
angewöhnt, einen ordentlichen Aufbau auf Platine, oder wenigstens auf 
Lochraster mit kurzen Verbindungen auf der Lötseite durch verzinnten 
Draht zu machen. Und schon wurde die Erfolgsquote viel höher. Sonst wäre 
ich womöglich nicht Dipl.-Ing. (FH) und Leiter der Hardware-Entwicklung 
in unserem Institut geworden. Ich denke, eine gewisse Qualifikation hab 
ich da als Knallbirne.

Nochwas, versuchst du dein Programm in das EEPROM zu schreiben? Oben in 
den AVRDude Logs steht immer was von EEPROM. Das ausführbare Programm 
muss aber in den Flash.

von Johannes (menschenskind)


Lesenswert?

AAAh, Flash war das Zauberwort. Jetzt funktioniert alles wie gewünscht.

Tut mir Leid, dass ich dich vorhin so angepflaumt habe, aber du hast ja 
nicht gerade viel von deinen Kenntnissen durchblicken lassen.

Wir hatten im letzten Semester ein uC-Praktikum am Intel 8051 und ich 
war felsen fest überzeugt, dass wir das fertige Programm in den PROM 
geschrieben haben.

von Martin (Gast)


Lesenswert?

Super!
dann kannst du loslegen

Gruß

von Christian R. (supachris)


Lesenswert?

Kein Problem. Das EEPROM ist für Einstelldaten usw. da, daraus kann 
nicht ausgeführt werden, genauso wie aus dem RAM auch nicht.

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


Lesenswert?

Technisch unterscheiden sich Flash-ROM und EEPROM gar nicht so sehr,
nur ihre Benutzung ist halt stark unterschiedlich.  Da der EPROM
für Daten vorgesehen ist, kann er aus der Applikation byteweise
beschrieben werden, während der Flash-ROM nur eingeschränkt aus der
Applikation beschrieben werden kann (aus Sicherheitsgründen) und nur
in relativ großen Blöcken.

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.