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
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.