ATmega128 - 16AU kann nicht mit USBasp programmiert werden

Ich versuche, einen ATmega128-Mikrocontroller zu programmieren (gekauft von Robokits ). Ich habe den 10-poligen ISP-Header vom USBasp-Programmierer an die 6 Pins (MOSI, MISO, SCK, RESET, VCC, GROUND) der MCU angeschlossen.

Aber immer wenn ich versuche, die MCU zu programmieren, ist das Ergebnis:

C:\Documents and Settings\intern>avrdude -p m128 -c usbasp
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.
avrdude done.  Thank you.

Ich habe auch versucht, einen externen 8-MHz-Quarz an die MCU anzuschließen, wie in diesem Beitrag angegeben , aber es hat nicht funktioniert.

ATmega128 - Bild

Geben Sie hier die Bildbeschreibung ein

Versorgst du den ATMega mit Strom? Versuchen Sie auch, das -B 1Argument zur avrdude-Befehlszeile hinzuzufügen
Der VCC des ATmega ist mit dem Vcc (2. Pin) des 10-poligen ISP-Headers verbunden
Das bedeutet nicht unbedingt, dass der ISP/Programmierer den uC mit Strom versorgt. Atmels eigener AVRISP MKII versorgt das Ziel nicht einmal mit Strom (ohne es zu hacken) und wird nicht programmieren.
Ich habe die Vcc- und GND-Pins überprüft, ich habe 5 V bzw. 0 V gemessen
@EkriirkE Ich habe es auch mit versucht -B 1. Es hat nicht funktioniert
Haben Sie eine Kapazität über den Stromversorgungsanschlüssen des ATmega? Sie sollten einen 0,1-uF-Kondensator pro Vcc-Pin haben. Außerdem müssen Sie alle Strom- und Erdungsstifte anschließen . Ob du das gemacht hast, kann ich anhand der Bilder nicht sagen.
@ConnorWolf Ja, ich habe sie verbunden.
Aber haben Sie Bypass-Kondensatoren für jeden Pin?
OP, sollte alles andere fehlschlagen, würde ich Ihnen empfehlen, diesen Artikel hier zu lesen. Es geht um die Einrichtung von Atmel Studio mit USBasp im Allgemeinen, aber es wird viel über die Verwendung von USBasp gesprochen. shannonstrutz.com/?p=629

Antworten (2)

Pin 1 (nPEN) soll während des Einschaltens niedrig gehalten werden, damit die SPI-Programmierung möglich ist.

nPEN hat einen internen Pull-up, daher ist das Erden dieses Pins während des Einschaltens ein Muss, sonst können Sie ihn nicht mit dem USBasp programmieren.

"PEN ist ein Programmierfreigabe-Pin für den seriellen SPI-Programmiermodus und wird intern hochgezogen. Wenn dieser Pin während eines Power-on-Reset niedrig gehalten wird, wechselt das Gerät in den seriellen SPI-Programmiermodus. PEN hat während des normalen Betriebs keine Funktion. "

Sie müssen also die Erdung an Pin 1 für ein normales Startverhalten entfernen.

  • Sie müssen auch die Pins PE0 als MOSI, PE1 als MISO und SCK als SCK verwenden. Dies alles ist im Abschnitt SPI Serial Programming auf Seite 300 im Datenblatt für ATmega128 beschrieben.
Das Erden von PEN ist optional, da die Programmierer SCK auf LOW setzen können, wenn sie das RESET-Signal erhöhen. PEN muss verwendet werden, wenn SCK beim Zurücksetzen nicht garantiert auf LOW ist. Ich habe getestet, ob es mit Floating PEN (intern hochgezogen) und den USBAsp- und BusPirate-Programmierern funktioniert.

@ Bishal

Ich habe auch genau den gleichen Programmierer und es sieht für mich so aus, als ob MISO und MOSI in den ISP-Header-Pins vertauscht sind.

Im ZIF-Sockel scheinen sie jedoch an der richtigen Stelle für einen 40-Pin-Chip angeschlossen zu sein. Wahrscheinlich funktioniert das Austauschen von MOSI und MISO auf den ISP-Pins für Sie.