Forum: Mikrocontroller und Digitale Elektronik usbasp Bauen


von Jens S. (jens35)


Lesenswert?

Hallo
ich habe nach dieser Seite http://www.das-labor.org/wiki/Usbasp
und http://www.fischl.de/usbasp/ einen Programmer zusammen gebaut.

Damit ich den ATMega8 das erste mal flashen kann habe ich mir
hier http://www.ebay.de/itm/160763961838 eine funktionierenden
Usbasp Programmer besorgt.
Zur Zeit steh ich auf dem Schlauch.
Zu nächst habe ich versucht den Mega8 auf der aufgebauten
Schaltung anzusprechen.

Win-XP; avrdude 5.1 und 5.6 in cmd.exe ; eXtrem Burner AVR 1.2

scheinbar habe ich kein komunikation mit dem Chip

Dann habe ich den Mega8 aus der Schaltung raus genommen und auf nem 
Breadboard gesteckt, da dann die Kabel für Minus - Plus - Reset - SCK 
-MOSI
MISO dazu gesteckt.

auch kein Kontakt zum Chip.

Dann hab ich hier noch einen ATTiny13a, brandneu
auch das selbe.

ich kann werde was aus dem Chip lesen, geschweige denn schreiben...

von Jens S. (jens35)


Lesenswert?

Die Ausgabe von eXtrem Bruner beim leseveruch ist :
1
Autodetecting Programmer
2
OK Found Usbasp on USBPort  
3
Powering On
4
Power On Faild
5
Cannot communicate with Targe Chip
6
Retry
7
...

bei avrdude:
1
>avrdude -c usbasp -p atmega8 -U usbasp.atmega8.2011-05-28.hex
2
3
avrdude: warning: cannot set sck period. please check for usbasp firmware update
4
.
5
avrdude: error: programm enable: target doesn't answer. 1
6
avrdude: initialization failed, rc=-1
7
         Double check connections and try again, or use -F to override
8
         this check.
9
10
11
avrdude done.  Thank you.

von Dr. Sommer (Gast)


Lesenswert?

Wieso willst du einen 2. usbasp bauen wenn du doch schon einen hast? 
Setze mal auf dem usbasp den Jumper um den SPI-Takt herunter zu setzen, 
das wird für "frische" AVR's gebraucht, weil die mit dem internet 
1MHz-Oszillator zu langsam für den USBasp-Standardtakt sind.

von Case-Modder (Gast)


Lesenswert?

Jens Schröder schrieb:
> avrdude -c usbasp -p atmega8 -U usbasp.atmega8.2011-05-28.hex

Bau in das Kommando versuchsweise ein "-B 600" ein.

> avrdude: warning: cannot set sck period. please check for usbasp
> firmware update

Falls nach o.g. Änderung diese Fehlermeldung immer noch erscheint, hast 
du leider einen USBasp mit veralteter Firmware (2009 oder früher) 
erwischt. Die aktuelle Firmware von fischl.de (Stand 2011) kann nämlich 
die Taktgeschwindigkeit ändern.

von Jens S. (jens35)


Lesenswert?

Erst wollte ich mir einen Programmer bauen,
Problem fabrikneuer leerer Mega8
Zur Übung, weil Programm und Fuse vorgegeben.

Dann hab ich mir einen billigen in der Bucht gekauft,
Problem bis jetzt keine Verbindung zu leeren ATMega8

ich habe jetzt meine Nibobee auseinander genommen,
den großen ATMega raus genommen
Dann mir die Signale gesucht und den Programmer aus der
Bucht an geschlossen.
War ne OP am offenen Herzen.

Hab jetzt die neuste Software von Fischl auf den Programmer
aus der Bucht drauf gespielt
dazu hab ich die einzige Brücke professorisch kurz gelötet.

Ging so weit OK

Leider ist auf dem Teil kein SCK Jumper drauf.
Hab jetzt PIN 25 des quadratischen SMD-Gehäuse mit
einem dünnen Draht auf GND gelegt.

Zum Target-IC hab ich aber immer noch keinen Kontakt.

Entweder hab ich den jetzt gehimmelt oder verfused
oder ich steh auf dem Schlauch...

Anderseits hab ich ja noch den ATtiny13A,
bei dem hab ich garantiert nur lesen versucht.

Oder ich besorg mir noch ne Handvoll ATMegas / ATTinys..

von Jens S. (jens35)


Lesenswert?

Case-Modder schrieb:
> Jens Schröder schrieb:
>> avrdude -c usbasp -p atmega8 -U usbasp.atmega8.2011-05-28.hex
>
> Bau in das Kommando versuchsweise ein "-B 600" ein.
>
>> avrdude: warning: cannot set sck period. please check for usbasp
>> firmware update
>
> Falls nach o.g. Änderung diese Fehlermeldung immer noch erscheint, hast
> du leider einen USBasp mit veralteter Firmware (2009 oder früher)
> erwischt. Die aktuelle Firmware von fischl.de (Stand 2011) kann nämlich
> die Taktgeschwindigkeit ändern.

Das hab ich mit der neuen Firmware noch nicht versucht...

von Case-Modder (Gast)


Lesenswert?

Jens Schröder schrieb:
> Case-Modder schrieb:
>> Bau in das Kommando versuchsweise ein "-B 600" ein.
> Das hab ich mit der neuen Firmware noch nicht versucht...

Mach mal. :-)
Und den Löt-Jumper von Pin 25 brauchst du mit der neuen Firmware nicht, 
dafür ist ja das "-B" da.

Klappts dann? Oder kommt eine Fehlermeldung? Falls ja, welche?

von Jens S. (jens35)


Lesenswert?

die Ausgabe ist
1
[C:\Dokumente und Einstellungen\User\Eigene Dateien\Downloads\usbasp.2011-05-28\
2
bin\firmware]avrdude -c usbasp -p atmega8 -U usbasp.atmega8.2011-05-28.hex -B 600 -F -D
3
4
avrdude: set SCK frequency to 1 kHz
5
avrdude: error: programm enable: target doesn't answer. 1
6
avrdude: initialization failed, rc=-1
7
avrdude: AVR device initialized and ready to accept instructions
8
avrdude: Device signature = 0x000000
9
avrdude: Yikes!  Invalid device signature.
10
avrdude: Expected signature for ATMEGA8 is 1E 93 07
11
12
avrdude done.  Thank you.

ich schätze der IC ist hin, oder ?
oder verdrahtungs fehler?
muss Reset an Pin1 oder 16 oder an beide ?

Hab mal nen 15kHz Quarz gesteckt, den hat ich gerade hier rum
liegen an stelle von 12kHz

Außerdem hab ich noch nen 15kHz Oszillator hier, muss aber erst mal
schauen wie ich den anschließe...

von Jens S. (jens35)


Lesenswert?

Der Programmer aus der Bucht hat im übrigen einen
ATMega_8L8 mit 12MHz Quarz drauf, obwohl nur bis 8MHz
laut Docs

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


Lesenswert?

Hallo, dein Programmer scheint das -B 600 zu schlucken, die Firmware ist 
ok.

Hast du schon alle Programmierleitungen geprüft? Vielleicht hängt eine 
nicht richtig dran – oder schon richtig dran, aber am falschen Pin?

Ansonsten wär ich ebenfalls ratlos...

von Kathi (Gast)


Lesenswert?

Jens Schröder schrieb:
> ich schätze der IC ist hin, oder ?
> oder verdrahtungs fehler?
> muss Reset an Pin1 oder 16 oder an beide ?

So schnell ist ein µC nicht hin! ;-) Klingt einfach nach nem 
Verdrahtungsfehler...

Ich nehme an, du meinst mit deiner Frage den zu programmierenden mega8?
Dann muss Reset natürlich an den Pin1! Um den zu programmieren, musst du 
die Leitungen, die aus deinem Programmer kommen wie es im Datenblatt des 
mega8 steht anschließen!

Aus deinem eBay-China-Programmer kommen die Programmierleitungen ja an 
dem 10-poligen Stecker raus und zwar so:
MOSI = Pin1
VCC = Pin2
GND = Pin4,6,8,10
Reset = Pin5
SCK = Pin7
MISO = Pin9
AVR In System Programmer: Pinbelegung

An welche Pins deines mega8 die müssen, steht im Datenblatt
http://www.atmel.com/Images/doc2486.pdf

Reset = Pin1
VCC = Pin7 UND Pin20 (braucht auch AVCC!)
GND = Pin8
MOSI = Pin17
MISO = Pin18
SCK = Pin19

Wenn das alles so verbunden ist, müsste das mit dem Programmieren 
klappen!

Lg, Kathi

von Kathi (Gast)


Lesenswert?

PS: Ich habe die Anschlüsse des mega8 beschrieben in der Annahme, dass 
du die DIP-Variante vor dir liegen hast... Wenn du ihn als TQFP hast, 
sind sie anders!!! Das müsstest du dann aber selbst nachlesen, die weiß 
ich nicht auswendig ;-)

von Kathi (Gast)


Lesenswert?

PPS: Kein Quarz, keine Jumper, kein Oszillator. Einfach nur den 
eBay-China-Programmer in den PC stecken und die Programmierleitungen an 
den mega8 stecken.

von RTFM (Gast)


Lesenswert?

Jens Schröder schrieb:
> Oder ich besorg mir noch ne Handvoll ATMegas / ATTinys..

Dann besser gleich einen AVRISPmkII. Kostet auch nur "eine handvoll".

von Uwe (de0508)


Lesenswert?

Guten Morgen,

bei mir läufen auch usbasp und usbtinyisp problemlos.

Was ich nicht lese, wo kommen die Vcc = +5V herr?

Sind die sauber?

Soll heißen mit +5V aus USB, gab es keine Verbinung ein aktiver USB - 
Hub schafft da Abhilfe.

AVcc und AGnd sind auch zu beschalten!
Und ein PullUP an Reset muss auch sein.

von Jens S. (jens35)


Lesenswert?

Danke für die Tipps

-AVVC hatte ich natürlich vergessen
-Pullup für Reset auch, dachte wäre intern

+5V kam aus dem Programmer (USB-Port), aber ich habe hier noch
ein 5V-Netzteil das werde ich mal dran hängen,
Kondensator wäre auch gut

ist ein DIL28s

nen parallel oder serial Programmer kann ich nicht gebrauchen,
mache aber langsam Fortschritte, jeder hat mal klein angefangen

Mit avrdude und eXtrem_burner komm ich schon gut hin,
als Anfänger sind zu viele Optionen auch nicht gut
vieleicht versuch ich mal Bascom (Demo)
Basic ist für mich alten C64 Hasen einfacher als C mit
den vielen ;;;

Jetzt muss ich erst mal Versuche starten, Danke an alle!

von Jens S. (jens35)


Lesenswert?

Eine gute und eine schlechte Nachricht

beim AT Tiny13A konnte ich die FUSE lesen und CKDIV8 abschalten
danach war die Kommunikation auch noch da
(interner Ozzi soll verwendet werden)

beim AT MEGA8-16PU kein Kontakt mehr bei gleichen Bedingungen

Heißt, neuen ATMega8 besorgen und gut ist

vermute beim setzen der Fuse hab ich am Anfang mal irgendwann
Mist gemacht, dabei wollte ich die Einstellungen vom USBasp nehmen


Danke, ich habe viel dabei gelernt.
Der Programmer aus der Bucht kann vorerst auf SLOW bleiben...

zur Spannungsversorgung hab ich ne 4,5V Batterie genommen
und das Plus vom Programmer abgeklemmt
und nen beliebigen Kondensator gesteckt


Noch eine Frage:
bei avrdude such ich die Option für den Tiny13A

>avrdude -p tiny13a -c usbasp -B 600 ...

scheint nicht zu gehen

von USBASP User (Gast)


Lesenswert?

Für den Tiny 13A würde ich folgendes empfehlen:

avrdude -p t13 -c usbasp ......

von Jens S. (jens35)


Lesenswert?

OK es ging:

> avrdude -c usbasp -p tiny13  -U Tiny13.hex -p t13

avrdude: AVR device initialized and ready to accept instructions

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

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

         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "Tiny13.hex"
avrdude: input file Tiny13.hex auto detected as Intel Hex
avrdude: writing flash (252 bytes):

Writing | ################################################## | 100% 
1.98s



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

Reading | ################################################## | 100% 
1.39s



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

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

>

von Jens S. (jens35)


Angehängte Dateien:

Lesenswert?

Geschafft !

ich habe den usbasp mit Optokoppler nach gebaut, funktioniert !

Schaltung frei nach: 
http://diy.elektroda.eu/usbasp-z-optoizolacja-do-25kv-18v-6v/?lang=en 
DANKE
Und http://www.fischl.de/usbasp/    DANKE

und der Hilfe hier im Forum DANKE

Platine Lochraster, handgesägt
Leiterbahnen Kupferlackdraht aus der defekten Waschmaschinenpumpe ;-)
LEDs 2mA Typen, rote ist RESET-Leitung
Optokoppler 3x 6N317 und PC817 für RTS
ATMega8-16, auf  Breadboard programmiert,

TIPP: Erst FUSE so einstellen das interner Ozzi auf 8MHz läuft,
dann Software flashen, dann auf Quarz umstellen

Elko 470/6,3 aus der Krabbelkiste
die weißen "Röhrchen" ist Isolierung eines dickeren Kabels gegen 
Kurzschlüsse,
drin stecken Widerstände, die sind teils Metallfilm, teils Kohleschicht, 
aus der Krabbelk...
Schalter "Slow" neben USB Buchse.
Sockel 28pin + 16pin + 14pin

Jens G. Schröder

von USBASP User (Gast)


Lesenswert?

Gratuliere! Allerdings weis ich nicht wofür man dieses Optokoppler 
Gedöns braucht. Mir reicht mein 3 Euro Teil vom Chinesen. Bisher noch 
ohne Probleme in Verwendung. USBASP mit der Fischl Software ist einfach 
genial. Da brauchts kein teures Atmel ISP MK II.

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


Lesenswert?

USBASP User schrieb:
> Gratuliere! Allerdings weis ich nicht wofür man dieses Optokoppler
> Gedöns braucht. Mir reicht mein 3 Euro Teil vom Chinesen.

Hey, der Weg ist das Ziel! Ich finds super, was Jens zusammengebaut hat. 
Nicht, weil sein neuer USBasp jetzt eine bahnbrechende Erfindung ist, 
sondern weil er bestimmt jede Menge Erfahrung dabei gesammelt hat. Das 
ist nicht zu unterschätzen!

> Bisher noch
> ohne Probleme in Verwendung. USBASP mit der Fischl Software ist einfach
> genial. Da brauchts kein teures Atmel ISP MK II.

Auch meine Meinung. Trotzdem gibt es hier auch ein paar Leute im Forum, 
die nicht unserer Meinung sind. :-)

Für ganz bestimmte Fälle ist der USBasp dann halt doch nicht geeignet 
(z.B. HVSP, HVPP). Ob sich deswegen aber ein deutlich teurerer 
Programmer lohnt, muss jeder für sich selber entscheiden.

von Jens S. (jens35)


Lesenswert?

Kaufen kann jeder!

aber der Weg ist das Ziel und lernen tu man auch noch was.
Immer hin hab ich jetzt ne Ahnung was FUSE sind ;-)
und wie man sie ein-setzt

Und einfach einen fertig programmierten IC in nen Sockel stecken
ist mir auch zu einfach

immerhin, Schaltung aus dem Web abgekupfert,
mit Eagel ne eigen Plan gemacht,
das ganze auf Lochraster gefädelt
x-mal kontrolliert und gemessen
einen Mega8 verfused...
einen erfolgreich programmiert

Nebenbei mit Tiny13A eine Fußgänger-Ampel gebaut,
Idee meines Jüngsten

Und zum Schluss geht dann doch alles

von USBASP User (Gast)


Lesenswert?

Immerhin braucht man zum bauen selbst einen Programmer. Und den hast Du 
wohl auch gekauft, oder irre ich mich da?

von Jens S. (jens35)


Lesenswert?

Nibo Bee, den 40-Pinner-AtMega raus genommen
und frei an 10-pol-Buchse verdrahtet

war nötig weil der 3-Euro-Programmer aus der Bucht,
den ich gekauft hatte,
die Software nicht aktuell hatte

Ach so, das Billigteil ist jetzt über, wer bietet
dafür am meisten? Software ist jetzt aktuell

aber es kann ja nicht schaden einen auf Reserve zu haben

von Achim M. (minifloat)


Lesenswert?

USBASP User schrieb:
> Immerhin braucht man zum bauen selbst einen Programmer. Und den hast Du
> wohl auch gekauft, oder irre ich mich da?

Einen Programmer hatte er immer da. Ich hab damals™ meinen ersten usbasp 
mit einem SIprog gebrannt... mfg mf

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.