Forum: Mikrocontroller und Digitale Elektronik AVRISP mkII "Anfänger-Problem" (Atmega649)


von Harald F. (harryfu)


Angehängte Dateien:

Lesenswert?

Hallo erstmal zusammen,

ich habe vor einigen Monaten das Basteln mit Arduinos begonnen und über 
diesen Weg auch schon einige kleine Projekte erfolgreich abgeschlossen. 
Seitdem lese ich hier immer wieder das Forum um mir Tips und Anregungen 
zu holen.

Vor ein paar Wochen habe ich mir nun vorgenommen, mich von der Arduino 
Welt (Bootloader) zu emanzipieren und mir einmal selbst ein kleines 
Bastelboard auf Basis eines Atmega 649 zu bauen, da ich unter anderem 
gerne ein kleines LCD-Display ansprechen möchte und dieses Modell gerade 
im Angebot war.

Hierfür habe ich mir einen AVRISP mkII bei Reichelt bestellt um mittels 
Atmel-Studio 6 den Mikrocontroller über ISP zu programmieren.
Leider habe ich schon bei diesem Schritt gewaltige Probleme und habe bei 
meiner Suche im Forum hier und im Netz keine passende Lösung gefunden.

Ich habe den Mikrocontroller nach besten Wissen und gemäß Datenblatt 
versucht zu beschalten (AREF mit C gegen Masse;Pullup an RESET;AVCC 
mittels LC zwischen VCC und Masse; LCDCAP über C an Masse etc.)

Wenn ich nun jedoch versuche mittels ISP auf den 649 zuzugreifen (Device 
Signature Auslesen), sagt mir das Atmel-Studio dauerhaft: "unable to 
enter programming mode" und "Got 0xc0, expected 0x00".
Beide LEDs des AVRISP leuchten jedoch grün. Der Mikrocontroller hat 
Spannung. Eine Veränderung der ISP-Frequenz im Bereich von wenigen 
hundert Hz bis 125kHz bringt keine Veränderung.
Auch das Ausweichen auf AVR-Studio 4 oder 5 und ein neues Einspielen der 
AVRISP-Firmware ändert nichts am Verhalten.

Leider besitze ich nur ein altes Analoges Oszi, so dass ich 
MOSI/MISO/SCK nicht mitschneiden kann. Wenn ich den Takt jedoch sehr 
gering stelle, kann man erkennen, dass RESET korrekt nach Masse gezogen 
wird und an SCK ein passendes 5V-Tacktsignal anliegt.
An MOSI kann ich ebenfalls ein Signal erkennen, welches jedoch nur eine 
Amplitude von wenigen 100mV besitzt. An MISO ist überhaupt kein Signal 
zu erkennen.
Der Mikrocontroller scheint also überhaupt nicht zu reagieren. Kann das 
mit der geringen Spannungsamplitude an MOSI zu tun haben? Meines 
Erachtens nach müsste dessen Amplitude auch bei 5V liegen oder sehe ich 
das falsch?
Einen Kurzschluss auf dem Board kann ich ausschließen, da auch nach dem 
Abstecken von MOSI und messen ohne "Last" nur diese geringe Spannung 
anliegt. Kann es sein, dass der AVRISP defekt ist?

Oder habe ich einen grundlegenden Fehler beim Beschalten des Atmega 
gemacht? Den interessanten Teil des Schaltplans habe ich mit angehängt 
und würde mich freuen, wenn sich jemand finden würde, der mal kurz 
drüber schauen könnte.

Vielen Dank schonmal

HarryFu

von Hubert G. (hubertg)


Lesenswert?

Harald Fu. schrieb:
> Einen Kurzschluss auf dem Board kann ich ausschließen, da auch nach dem
> Abstecken von MOSI und messen ohne "Last" nur diese geringe Spannung
> anliegt.

Schon einmal den Widerstand vom Pin nach GND gemessen?

Die Beschaltung sieht soweit OK aus.

von Peter R. (pnu)


Lesenswert?

Die Schaltung müsste gehen, wenn Schaltbild (Plan)  mit Schaltung 
(Realität) übereinstimmt.

1. Stimmt der ISP Stecker? (Spiegelverkehrung ist möglich, durch Stecker 
auf B- anstatt auf L-Seite, also messen, ob Pin-1 auch wirklich auf 
Leitung-1 des ISP-Kabels kommt

2. Der VCC beim MKII liefert kein VCC für das Target, beim Arduino ist 
man meines Wissens das anders gewohnt. Das Target also über "Power" 
versorgen.
Das $C0 = 11000000b lässt darauf schließen, dass das Target zunächst 
über MISO,SCK MOSI und ihre Schutzdioden  "Spannungsversorgung" hat, 
aber dann  verhungert wenn es MISO-Signal an den MKII liefern muss.

3. Der MKII liefert ja das MOSI. Bei abgetrennten Target müsste es also 
während des Arbeitens richtigen Pegel haben. In der Wartezeit ist MOSI 
aber hochohmig und dazu vom Target belastet, die paar 100mV sind da 
schon möglich.

von Harald F. (harryfu)



Lesenswert?

Vielen Dank schonmal für die Antworten :)

Hubert G. schrieb:
> Schon einmal den Widerstand vom Pin nach GND gemessen?

Also die Widerstände von MOSI und MISO nach GND liegen beide bei 
mehreren Megaohm.

Peter R. schrieb:
> Die Schaltung müsste gehen, wenn Schaltbild (Plan)  mit Schaltung
> (Realität) übereinstimmt.

Ich habe die Schaltung jetzt schon zig mal durchgemessen. Sollten keine 
Kurzschlüsse oder Brücken existieren.

Peter R. schrieb:
> 1. Stimmt der ISP Stecker? (Spiegelverkehrung ist möglich, durch Stecker
> auf B- anstatt auf L-Seite, also messen, ob Pin-1 auch wirklich auf
> Leitung-1 des ISP-Kabels kommt

Stecker muss passen. Die beiden LEDs des MKII leuchten beide grün und 
die Spannungsanzeige im AVR-Studio zeigt auch die passenden 5V an. 
Verbinde ich die Pins anders/spiegelverkehrt blinken die LEDs orange.
Außerdem wird RESET ja ordnungsgemäß auf Low gezogen.

Peter R. schrieb:
> 2. Der VCC beim MKII liefert kein VCC für das Target, beim Arduino ist
> man meines Wissens das anders gewohnt. Das Target also über "Power"
> versorgen.

Dass der MKII keine Spannung ans Target liefert ist mir bewusst. An Pin 
21 und 52 liegen 5V und an Pin 22 und 53 GND. Sollte also passen.

Peter R. schrieb:
> Der MKII liefert ja das MOSI. Bei abgetrennten Target müsste es also
> während des Arbeitens richtigen Pegel haben. In der Wartezeit ist MOSI
> aber hochohmig und dazu vom Target belastet, die paar 100mV sind da
> schon möglich.

Genau das wundert mich. Schließe ich an den MKII nur VCC, GND und RESET 
des Targets an und messe dann während des Auslesens der Device Signature 
die Signale SCK,MOSI und MISO (ohne Verbindung zum Target), erhalte ich 
an SCK wie erwartet ein 5V Rechtecksignal mit der eingestellten 
Frequenz. An MOSI jedoch nur seltsame Signalimpule mit wenigen 100mV und 
an MISO logischerweise garkein Signal.

Wenn ich die Signale anschließe, erhalte ich zwar bei MOSI ein 
einigermaßen schönes Rechtecksignal, allerdings wieder nur auf ca. 300mV 
nun aber auf MISO ein "Impulssignal" mit noch kleinerer Amplitude und 
auf 2,5V Offsetspannung... Bilder habe ich mal angehängt.
Sieht für mich eher irgendwie nach Quereinstreuung des SCK Signals aus?

Leider habe ich keinen anderen Programmer zur Hand, so dass ich nicht 
prüfen kann, wie es sich bei anderen verhält.

von Harald F. (harryfu)


Lesenswert?

Habe mir nun einen USBtinyISP Clone gekauft und heute zusammengelötet.
Hat auf Anhieb funktioniert. Ich kann mittels Avrdude die Device-ID 
lesen und Fuses lesen und auch setzen.
Scheint also wirklich ein Defekt am AVRISP zu sein. Jetzt ist nur die 
Frage, wie ich den ausgetauscht bekomme...

Vielen Dank für eure Hilfe :)

: Bearbeitet durch User
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.