USBasp und ATMega 8

OP #4353108
Lesenswert?

Hallo liebe Community!

Ich weiß, dass es schon etliche Threads zu diesem Thema gibt, aber ich 
bin langsam am verzweifeln. Ich möchte 
diesen(http://www.fischl.de/usbasp/) USBasp benutzen, um einen ATMega8 
zu flashen. Ich habe alle Verkabelungen bestimmt 20+ mal überprüft, 
mehrere Controller (teilweise neu) ausprobiert genauso wie zwei 
verschiedene (frisch ausgepackte) USBasps.
Ich bekomme permanent die Fehlermeldung:
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.
Habe sowohl den SLOW-Jumper, als auch das -B(etliche Zahlen) Statement 
benutzt, um eine zu hohe Taktrate auszuschließen. MOSI und SCK Leitung 
"wackeln" auch kurz, kann es nur mit meinem Oszi nicht so genau messen. 
Nur MISO regt sich gar nicht, sofern ich das beurteilen kann. FUSES sind 
noch keine gesetzt worden - wie auch. Die Controller sind wie oben 
beschrieben neu, FUSE-Konfiguration sollte also der Standard sein.
Veraltete Firmware kann ich eigentlich ausschließen, weil das 
Taktrate-Verstellen ja problemlos klappt.
Gibt es irgendwas, was ich übersehen haben könnte?

LG Nils
Gast #4353117
Lesenswert?

Hello,
Please check again all connections (shorts or even unconnected wires). 
Also, check to have 5V on the board to be programmed and 10k resistor 
from RST pin to VCC. Finnaly, load 2009 firmware in programmer. What 
program you use to burn AVR? You can post foto(s) with your setup?
Best regards
#4353192
Lesenswert?

Moin,
wie ist dein ATmega8 angeschlossen? Liegt er lose auf dem Tisch? Oder 
ist er in einer Schaltung verbaut und du willst ihn über ISP 
programmieren?

Wenn lose auf dem Tisch:
Guck mal unter 
http://www.learningaboutelectronics.com/Articles/Program-AVR-chip-using-a-USBASP-with-10-pin-cable.php
dort ist prinzipiell der Anschluss beschrieben. ACHTUNG: laut deinem 
Link sind die Pins 4+6 mit dem UART vom USBASP verbunden. Also Dort ist 
KEINE Masse.
Prinzip für den ATmega8 (PDIP / DIL-Package)
ISP           Signal      ATmega
1         -->  MoSi  -->    17
2         -->  5V    -->    7  (Jumper 3 gesetzt)
5         -->  Reset -->    1
7         -->  SCK   -->    19
8 oder 10 -->  GND   -->    8 (oder 22)
9         -->  MiSo  -->    18

Wenn du ihn in einer Schaltung verbaut hast, schließe die Pins 
1,5,7,8,9) wie oben beschrieben an. Nur die Versorgung (5V) von extern 
(=Jumper 3 nicht setzen, oder Pin2 nicht anschließen) anschließen. Wenn 
du ihn über den USBasp versorgen willst, achte darauf, dass der 
benötigte Strom vom USB Port bereit gestellt werden muss.
Deine Schaltung sollte dann ungefähr so aussehen:
http://www.fischl.de/usbasp/bilder/usbasp_circuit.png
Achte auf den 10K am Reset Pin. Aber das hat nico ja schon geschrieben.

Poste ggf. mal ein Bild von deinem Aufbau.

Jumper 1 muss ebenfalls gesteckt sein, denn soweit ich weiß, kommt der 
Atmega8 im Auslieferungszustand mit den hohen Clock-Raten nicht klar.

Ansonsten sollte es eigentlich laufen.
Ich hoffe ich habe auf die schnelle dort keinen Schitzer eingebaut..

Der USBasp wird vom PC erkannt??? Denke, ja. Sonst hättest du eine 
andere Fehlermeldung.

Grüße

Edit: Bei Versorgung über den USBasp und eingebautem µC muss JP3 
natürlich gesteckt sein ;-)
Und JP2 ist hoffentlich offen
OP #4353251
Lesenswert?

Vielen Dank erstmal für die schnellen Antworten!
Im Anhang ist jetzt ein Bild von meiner Schaltung. Auf den Schwingquarz 
kann ich ja verzichten, weil der uC standardmäßig den internen Takt 
nutzen sollte?(mit Quarz hat sich das Problem auch nicht gelöst). Das 
Board wird (rechter Jumper) über den USBasp versorgt. Mittlerer Jumper 
ist wie oben beschrieben Slow. Der Treiber funktioniert, da wie Jan 
schon sagte die Fehlermeldung sonst anders wäre. Wie wichtig sind die 
Widerstände bei Mosi und Sck? Habe etliche Schaltungen im Internet 
gefunden, bei denen sie einfach weggelassen wurden, die aber (im Video) 
einwandfrei funktioniert haben.
Würde mir an sich nicht die Arbeit machen und einfach ein Arduino Board 
nehmen, aber es ist für die Arbeit und daher muss ich eine platzsparende 
Lösung finden.
Habe vieles an Software durch. Darunter Atmel Studio 7, Arduino IDE 
1.6.6, WinAVR und direkt in der MS-Shell. Aber da ja eh alles genannte 
nur auf AVRDUDE aufsetzt, ist das praktisch egal.
Angehängte Dateien:
#4353315
Lesenswert?

Ich vermute folgendes:
Deine Versorgungsleisten auf dem Steckbrett sind nicht miteinander 
verbunden.
Du hast an Pin20 5V aber nicht an Pin7 --> ggf. mit Voltmeter 
übertrüfen.
Falls ja, steck das rote Kabel auf die linke Versorgungsleiste oder 
schalte alle Versorgungsleisten mit zusätzlichen Kabeln parallel.


Den Widerstand für den Reset kannst du dir in diesem Aufbau sparen.
Den brauchst du nur, wenn der Controller auch ohne angesteckten 
Programmer laufen soll. Es schadet aber auch nicht, wenn du ihn drin 
lässt.

Auf dem Bild kann man es nicht genau erkennen. Aber Pin3 an dem USBasp 
ist frei? Ich sehe zwar, dass an der oberen Reihe nur 4 Kabel 
angeschlossen sind, aber welcher Pin frei ist, ist schwer zu erkennen.

Außerdem vermute ich mal, dass der Wannenstecker richtig belegt ist. Auf 
dem USBasp erkenne ich leider keine Markierung aber der Anschluss sollte 
so sein:
https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/Stiftwanne2x13v2.jpg/155px-Stiftwanne2x13v2.jpg
Auch hier ggf mal nachmessen, ob du an Pin2 zu Pin8/10 5V misst. Bzw. 
auf deinem Steckbrett.

Ansonsten sieht es erstmal gut aus.

Probiere das erstmal aus.
OP #4353330
Lesenswert?

Was man (weil alles andere sonst noch ungenauer wäre) nicht erkennen 
kann ist, dass ich die Leisten parallel geschaltet habe. Habe Vcc gegen 
GND gemessen und es liegen 5V, genau wie bei AVcc und AGND. Im Anhang 
nochmal ein genaueres Bild von den Anschlüssen. Über der gelben Leitung 
(MOSI) ist der Pfeil, leider schwarz auf schwarz.
Angehängte Dateien:
#4353413
Lesenswert?

Auf die schnelle fällt mir nichts mehr ein.

Du könntest noch einmal die 5V an allen µC Pins messen, (gegen Masse vom 
USBasp) und auch die Masseverbindung prüfen (0,0V gegen GND_USBasp).
Außerdem die Signale an Reset, SCK und MOSI und MISO). Sowohl am µC als 
auch direkt am USBasp.
Ich gehe davon aus, das du das aber schon mehrmals gemacht hast.

Ansonsten könntest du nochmal versuchen, die Leitungen direkt an den µC 
zu stecken. Minimalbelegung wie oben geschrieben.
Oder wenn du es gerade zu Hand hast: Eine kurze Flachbandleitung direkt 
an den µC bzw. an ein IC-Sockel löten. Die Steckbretter sollen ja 
manchmal nicht so doll sein. Für die langsame Programmierung sollte es 
aber (eigentlich) allemal reichen. Bei mir lief der µC auch schon mit 
8MHz Quarz am selben Steckbrett.
Gast #4353430
Lesenswert?

Hallo Nils,

mit was programmierst Du eigentlich? Ich meine welches Betriebssystem?
Solltest Du unter Linux versuchen den Atmega zu brennen, solltest Du 
sudo avrdude... benutzen. Wenn Du nämlich als normaler Nutzer versuchst 
zu flashen sieht Deine Fehlermeldung genau so aus.
Solltest Du ein Makefile verwenden musst du ggf. den AVRDUDE_Programmer 
& AVRDUDE_PORT eintragen.
Mfg.
OP #4353502
Lesenswert?

Ich progge unter Windows 7 64-bit (habe ich nur ungenau durch MS-Shell 
erwähnt - mein Fehler). Gibt es da ähnliche Probleme (a la sudo)? Habe 
sowohl 2 USBasp's als auch 2 ATMega8 uCs und alle mit allen getestet. 
Der Programmer wird immer erkannt Bin langsam am Ende meines Lateins. 
Habe schon zig Foren durch, aber alle haben höchstens ähnliche Fehler. 
Ich beschaffe mir nochmal ein Linux-System und versuche es von diesem 
aus - die Kompatibilität ist mit SIcherheit höher. Einen Rechner mit 
Parallelport gibt's hier leider nicht..
OP #4353525
Lesenswert?

@Jan L.
den Arduino würde ich bestellen und das wäre meine Ausweichmöglichkeit, 
sofern ich hier nichts auf die Beine stelle. Mich frustriert nur 
langsam, dass es keinen für mich ersichtlichen Grund für dieses 
Verhalten gibt. Einen Grund gibt es mit Sicherheit, nur fehlt mir ein 
zweites Augenpaar von jemandem, der sich damit auskennt, um das 
unabhängig zu kontrollieren ;(. Danke trotzdem für den Link, falls ich 
heute keinen Erfolg mehr habe, wird das ausprobiert. Der Programmer und 
diese wackelige Konstruktion ist mir sowieso nichts.. Aber bevor ich 
hier rumlöte, wollte ich es "roh" zum laufen bringen.
Gast #4353544
Lesenswert?

Nils P. schrieb:
> @Philipp. Wie soll ich das, ohne die FUSES zu verstellen, für die ich
> den CHIP ansteuern muss?

Wirklich 100%ig sicher sein kann man nie, was mit den Fuses ist.

Ich würde dem Atmega einfach einen 4MHz-Quarz oder so (also was 
langsames) gönnen. Schaden tut es in keinem Fall, aber man ist auf der 
sicheren Seite.


Mit dem
http://www.fischl.de/usbasp/
hatte ich seinerzeit Dauerprobleme, es funktionierte zwar grundsätzlich, 
aber nur sehr wacklig. Tagelange Fehlersuche mit Forenhilfe hatte nix 
gebracht.

Habe dann auf mehrere Empfehlungen hin den AVRISP MKII geholt - und der 
proggt seit Jahren völlig sauber und zuverlässig.
OP #4353640
Lesenswert?

Danke erstmal für all' eure Hilfe. Habe hier eine Weile gemessen und 
sehe, dass dieses Bread-Board nicht wirklich zuverlässig ist. Beim MOSI 
pin messe ich ca. 1/3 der Spannung, die durch das MOSI-Kabel fließt, 
wenn ich sie direkt verbinde die volle Spannung. Werde also noch einmal 
einen neuen Aufbau starten müssen, vielleicht wie oben vorgeschlagen 
direkt an die Pins.
#4353689
Lesenswert?

...weitere "Bestelloptionen" - die bei mir prima funktionieren - wären

http://www.ebay.de/itm/1Stk-ATmega8-ATmega48-ATMEGA88-Development-Board-AVR-NO-Chip-DIY-Kit-Neu-/201223232054?hash=item2ed9d6da36:g:8BkAAOSwVFlUCDDa

oder auch die Chinaversion deines Fischls:

http://www.ebay.de/itm/AVR-51-Programmer-Adapter-mit-10-Pin-Kabel-ATMega-ATTiny-USBASP-USBISP-/301687762189?hash=item463dfded0d:g:zrsAAOSw-vlVpJn8

klappten beide unter Win7-64 auf Anhieb (avrdude, bzw. auch 
"KKMultikopter" - mit absolut abenteuerlichem 
Fädeldraht-Miso/Mosi-TQFP32-Anschluss...)
Gast #4353722
Lesenswert?

Bist du dir sicher das die Jumper auf dem Fischel richtig gesetzt sind ?

In der Readme sowie in dem Schaltplan ist Jumper 2 für das 
Firmwareupdate zuständig, bei dir sind die Jumper 1 + 2 oder 2 + 3 ? 
gesetzt.

Es kommt mir nur ein wenig Spanisch vor das der Jumper 2 nicht in der 
Mitte liegt.


Setting jumpers:
J1 Power target
   Supply target with 5V (USB voltage). Be careful with this option, the
   circuit isn't protected against short circuit!
J2 Jumper for firmware upgrade (not self-upgradable)
   Set this jumper for flashing the ATMega(4)8 of USBasp with another 
working
   programmer.
J3 SCK option
   If the target clock is lower than 1,5 MHz, you have to set this 
jumper.
   Then SCK is scaled down from 375 kHz to about 8 kHz.
Gast #4354143
Lesenswert?

Hallo,
ich benutze einen China USBasp, hat einen Jumper für 5V/3.3V. Den 
Zweiten Jumper musst ich nur setzen, als ich die neue Firmware auf den 
USBasp geschrieben wurde. Wenn ich mich richtig erinnere hatte ich die 
Meldung auch beim Atmel Studio 7 mit AVRdude.

Probier mal meine Einstellungen für den USBasp mit Atmel Studio 7 
(Tools->External Tools):
Command: C:\AVRdude-6.1\avrdude.exe
Arguments: -e -P usb -c USBasp -B 4 -p m8 -e -U 
flash:w:"$(ProjectDir)Debug\$(TargetName).hex":a

PS: Bin mir ziemlich sicher, dass du entweder die Jumper am USBasp 
falsch gesetzt hast oder die alte Firmware drauf hast.
OP #4354556
Lesenswert?

@Phillip
Habe schon mehrfach einen 12Mhz Quarz dran gehabt (mit 22pF 
Kondensatoren). Wenn ich die Jumper falsch gesetzt habe, wäre 
schlichtweg die Beschriftung auf dem USBasp falsch. Da steht leider 
nicht 1,2,3 sondern "Service(links, nehme ich als firmware-upgrade 
Jumper an), Slow (mitte, nehme ich als Taktdrossler an), Power(rechts, 
für Stromversorgung, funktioniert auch offensichtlich)". Und unabhängig 
vom Slow jumper funktioniert auch das -B-Statement. Messe mit dem Oszi 
und die genannte Frequenz wird auch auf der SCK-Leitung erzeugt.
Ich werde heute noch einige Tests durchführen, da die Widerstandsmessung 
mit dem Multimeter gestern sehr unterschiedlich ausgefallen ist und ich 
dem Board nicht so richtig traue.
Ansonsten lade ich mir noch die aktuellste Firmware runter und spiele 
die rauf, obwohl ich eigentlich davon ausgehe, dass sie drauf ist. Aber 
offensichtlich sollte man auf nichts vertrauen..
@fry ich werde deine Einstellungen mal testen, danke.
Gast #4354595
Lesenswert?

Hello Nils
Now I have seen your fotos. My question is: where is the jumper between 
positive voltage on breadboard (i.e. I don't see any connection between 
the two red strips on breadboard). This means that 10k resistor (on RST 
pin) and +Vcc of AVR are not connected to USBAsp. Check tis please.
Best regards from Romania
Gast #4354700
Lesenswert?

Ok, sorry if i didn't understood (work with Google translate). Usually 
this message is received when uC don't work (lack of power supply or 
misconnection). It is also possible that your breadboard is a bit noisy.
The last resort is to rewrite the firmware with 28-09-2009 firmware. If 
every connection is OK and the whole setup is correct I suspect that new 
firmware is buggy.
I used to use USBasp until I made my AVR ISP MkII clone with AT90USB162, 
so othe sollutions I don't have.
Best regards
OP #4354786
Lesenswert?

Ok Leute vielen Dank für eure Hilfe. Vielen Leuten, die diesen Thread 
lesen werden eure Vorschläge mit Sicherheit helfen.
Ich habe endlich eine Lösung gefunden!! (Die Erleichterung ist nicht in 
Worte zu fassen)
Was ich jedem empfehlen kann, der auch mit einem USBasp in Verbindung 
mit einem Chip + Breadboard zu kämpfen hat:


1. Checkt ob die Firmware aktuell ist (war sie wohl bei mir)
2. Checkt alle Verbindungen 100 mal, mindestens.
2a. Holt euch ein Multimeter zur Hand und messt alle Vcc Leitungen gegen 
alle                        GND Leitungen.
2b. Schließt ein Oszi an und prüft, ob alle Signale ankommen(und richtig 
ankommen).

Da lag bei mir wohl der Fehler - traut nichts, was ihr nicht selbst 
gebaut habt. Meine Verbindung zum Breadboard bei MOSI, MISO und SCK 
waren offensichtlich nicht 100% sicher. Darauf kam ich, als ich gesehen 
habe (wie oben erwähnt), dass nicht annähernd die Spannung am Füßchens 
des uC ankam, die anliegen sollte, der Ausschlag des Oszi war extrem 
gedämpft, irgendein Widerstand im Board anscheinend oder eben eine lose 
Verbindung... Man kann offensichtlich nicht genug messen. Habe es 
gelöst, indem ich den uC zusätzlich auf einen IC-Sockel gesteckt habe. 
Danke für eure Mühen und eure Tipps zur Schaltung - erspart mir sicher 
einige andere Probleme für später.

LG Nils

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren