Pages: [1]   Go Down
Author Topic: Bootloader auf Atmega16, kaputt?  (Read 1452 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Leute,

hab mir vor kurzem nen ISP Programmer "USBasp" geholt und wollte jetzt auf nem Breadboard mit nem ATMega16-16 einen Arduino Standalone bauen.

Hab das ganze nach der ANleitung auf der offiziellen Seite gebaut und konnte auch Fusebits erfolgreich über ISP auslesen (avrdude).

Dann hab ich so wie es hier stand einen neuen Eintrag in der boards.txt gemacht:
Code:
##############################################################

atmega16.name=ATmega16

atmega16.upload.protocol=arduino
atmega16.upload.maximum_size=14336
atmega16.upload.speed=19200

atmega16.bootloader.low_fuses=0xff
atmega16.bootloader.high_fuses=0xdd
atmega16.bootloader.path=atmega168
atmega16.bootloader.file=ATmegaBOOT_168_ng.hex
atmega16.bootloader.unlock_bits=0x3F
atmega16.bootloader.lock_bits=0x0F

atmega16.build.mcu=atmega16
atmega16.build.f_cpu=16000000L
atmega16.build.core=arduino

und wollte dann den Arduino Bootloader auf den µC flashen. Da kam aber so ein Fehler

Code:
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
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.

(SCK period kann ignoriert werden, das kam auch schon beim Fuses auslesen)
Resultat war, dass ich jetzt nichts mehr mit dem Mikrocontroller machen konnte, beim Fuses auslesen oder auch beim manuellen Modus von avrdude kam immer folgender Fehler:

Code:
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATMEGA16 is 1E 94 03

Ist der MC verloren oder gibts noch Abhilfe? Kann das an den Fusebits liegen? Hab ja nen externen 16MHz Quarz dran, allerdings an den richtigen Pins 28 + 29 (TOSC1 + 2).

Bitte dringend um Hilfe, ich verzweifle hier smiley-confuse
Vielen Dank

euer fran83
Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 257
Posts: 21465
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wenn Du Dich ausgesperrt hast hilft nur mehr HV-Programmierung.
http://www.circuitlake.com/avr-high-voltage-programmer-using-arduino.html
Frag mich aber nicht wie man das bei einem ATmega16 macht.
Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Weisst Du Auch warum Ich Mich Ausgesperrt Habe? Hab Doch Nen Crystal Dran.
Logged

Meran/BZ/IT
Offline Offline
Full Member
***
Karma: 0
Posts: 184
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

überprüf mal, ob der Kristall und die Kondensatoren  keine kalte Lötstelle haben.
Das hat mir mal einen ganzen  Abend gekostet  smiley-red

Gruß
Reinhard
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Schaltung ist auf nem Breadboard aufgebaut smiley-wink
Selbst Austausch von Kristall und Kondensatoren brachte keine Abhilfe.

Was ist das für ne Sch****, wenn die Fusebits auf 0xFF und 0xDD gesetzt sind (ergo 16 MHz externer Kristall), aber trotzdem nix funktioniert.

Habe jetzt noch mehrere Tests gestartet mit Minimalbeschaltung (AVR nur durch USB-Programmer versorgt), aber es kommt immer der gleiche Fehler, dass der ATMega nicht erkannt wurde. (also de facto wie als wenn ich gar nix angeschlossen hätte).

Logged

Meran/BZ/IT
Offline Offline
Full Member
***
Karma: 0
Posts: 184
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

USB-Programmer: kommuniziert er über FTDI oder ISP mit dem Atmega?
Falls der Atmega den internen Oszillator abgeschaltet hat und den externen nicht anspricht, kann er natürlich auch nicht antworten, weil er ganz einfach ohne Schwingung nicht läuft  smiley-confuse

Schau mal bei Deinem Programmer, ob er einen Taktausgang hat, um den Controller damit zum Arbeiten zu überreden.

Gruß
Reinhard
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

USB-Programmer: kommuniziert er über FTDI oder ISP mit dem Atmega?
Falls der Atmega den internen Oszillator abgeschaltet hat und den externen nicht anspricht, kann er natürlich auch nicht antworten, weil er ganz einfach ohne Schwingung nicht läuft  smiley-confuse

Schau mal bei Deinem Programmer, ob er einen Taktausgang hat, um den Controller damit zum Arbeiten zu überreden.

Gruß
Reinhard

Ich hab den USB-Programmer USBasp, der hat einen 10-Pin-ISP-Adapter, für den ich einen Breakout für das Breadboard gelötet habe. (keine Kurzschlüsse oder kalte Lötstellen, mit Multimeter getestet)
Der Programmer hat die normalen Ausgänge für den AVR ISP Anschluss, also auch einen SCK Pin, falls du das meinst. Der ist auch wie die anderen Pins mit den korrespondierenden Pins auf dem ATMega verbunden.
Was könnte der Auslöser für das Nicht-ansprechen sein? Hab den Quarz mit zwei 22pF Kondensatoren mit GND und den beiden Taktpins verbunden.

euer fran83
Logged

Meran/BZ/IT
Offline Offline
Full Member
***
Karma: 0
Posts: 184
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mit Taktausgang hab ich nicht den SCK-Pin gemeint.
Ich habe nämlich folgenden Programmer: http://www.ebay.de/itm/Diamex-ISP-USB-Programmer-fur-ALL-Atmel-AVR-XMEGA-ATMEGA-ATtiny-Controller-/270955392209?pt=Bauteile&hash=item3f16332cd1
Der hat nämlich einen Oscillator-Ausgang mit dem man einen "verfusten" Chip unter Umständen wieder zugänglich machen kann (hat mich auch schon mal gerettet  smiley-red ).

Hast Du vor dem Setzen der Fuses auch alle Lock-Bits auf "NO_LOCK" gesetzt?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mit Taktausgang hab ich nicht den SCK-Pin gemeint.
Ich habe nämlich folgenden Programmer: http://www.ebay.de/itm/Diamex-ISP-USB-Programmer-fur-ALL-Atmel-AVR-XMEGA-ATMEGA-ATtiny-Controller-/270955392209?pt=Bauteile&hash=item3f16332cd1
Der hat nämlich einen Oscillator-Ausgang mit dem man einen "verfusten" Chip unter Umständen wieder zugänglich machen kann (hat mich auch schon mal gerettet  smiley-red ).

Hast Du vor dem Setzen der Fuses auch alle Lock-Bits auf "NO_LOCK" gesetzt?

Achso, nein, sowas hat mein Programmer nicht.

Nein, ich habe die Fuses ja gar nicht selber gesetzt, sondern die Arduino IDE hat das anscheinend (falsch) gemacht.
Code:
atmega16.bootloader.unlock_bits=0x3F
atmega16.bootloader.lock_bits=0x0F

Dann werde ich mir wohl einen externen Taktgenerator bauen müssen. Schade, denn ich wüsste gerne, wo mein Fehler beim Beschreiben des ATMega lag...
« Last Edit: January 25, 2013, 06:52:16 pm by fran83 » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hab das ganze jetzt noch mal neu aufgebaut, alle Verbindungen getestet etc...
Trotzdem wird der ATMega nicht erkannt.
Kann der Chip auch irgendwie durch falsche Verbindungen mechanisch kaputtgegangen sein?

Hier mal mein Aufbau:



Könnt Ihr da falsche Verbindungen erkennen? Hab einfach nur minimal beschaltet, Spannung kommt vom Programmer, dann noch nen Pull up an Reset, 2x 22pF Kondensatoren + 16 MHz Quarz an XTAL1 und XTAL 2 und ne LED, um zu schauen, ob Spannung anliegt.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Soo, ich hab jetzt noch mal recherchiert und es kann sein, dass die Fuse Bits einfach nicht zum ATMega mit einem 16 MHz Quarz passen, da haben die Arduinoentwickler wohl Mist gebaut ...
Wenn ein 16 MHz dran ist, muss nämlich eigentlich CKSEL programmiert sein, wenn das nicht der Fall ist, sollten nur 3 - 8 MHz Quarze angeschlossen sein.
Bin also noch mal zum Elektrohandel und schnell nen 4 MHz Quarz gekauft. Ergebnis: /edit: mit dem Quarz funktioniert es! yippie! smiley
« Last Edit: January 30, 2013, 07:23:44 am by fran83 » Logged

Germany
Offline Offline
Edison Member
*
Karma: 47
Posts: 2314
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Soo, ich hab jetzt noch mal recherchiert und es kann sein, dass die Fuse Bits einfach nicht zum ATMega mit einem 16 MHz Quarz passen, da haben die Arduinoentwickler wohl Mist gebaut ...
Diese Argumentation verstehe ich nicht. Es gibt meines Wissens nach kein Arduino-Board, was auf einen Atmega16 setzt. Demnach müssen Core-Dateien , ein passender Bootloader und Einträge in der boards.txt (wo die Fuses stehen) von Drittanbietern/-entwicklern kommen. Warum kreidest du das den Arduinoentwicklern an?
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Pages: [1]   Go Up
Jump to: