Forum: Mikrocontroller und Digitale Elektronik Problem mit Reset STK500


von Ginu (Gast)


Angehängte Dateien:

Lesenswert?

Ich arbeite aktuell mit 1-wire und habe mir dazu einfach um auch mal ein 
bischen was mit Eagle gemacht zu haben das STK500 mit Hilfe des 
Tutorials auf mikrocontroller.net für meine Bedürfnisse verkleinert.

Auf dem Board befindet sich also nur:
Spannungsversorgung
ATMEGA168PV-10PU (+externer Quarz, 1 Ausgang für 1wire und die 
Programmierschnittstelle(6Pins))
MAX232CPE

Das Board habe ich herstellen lassen und aufgebaut. Aktuell läuft das 
ganze größtenteils mit einer 9V Batterie, aber zur Fehlersuche hab ich 
es auch schon mit Labornetzteil und 12V probiert. Spannung bleibt auf 
jeden Fall konstant 5V.
Wenn ich jetzt meinen ATMEGA zugreifen will kann ich zwar die Fusebits 
setzen, aber sobald ich ihn programmieren will kommt keine Reaktion.
Ergebnis beim Durchmessen:
5V kommen überall an
Die 6Pins zum programmieren sind richtig angeschlossen, allerdings ist 
der RESET-Pin immer low, obwohl dieser doch immer high sein sollte, da 
invertiert...?

Liegt es daran oder hat das andere Gründe? Evetnuell hab ich ja auch 
Layouttechnisch etwas total verbockt und mir fällt es nicht auf...

Deswegen hänge ich jetzt mal meine Eagledateien sowie, falls es jemanden 
interessiert, auch ein Bild an

von Ginu (Gast)


Lesenswert?

*push

von Ginu (Gast)


Lesenswert?

Ersten peinlichen Fehler gefunden...
Bei Pin 3 am ATMEGA ist das letzte kleine Stück nicht geroutet. Wurde 
gerade behoben, aber auf das Resetproble hat das natürlich erstmal 
keinen Einfluss :(

von David (Gast)


Lesenswert?

Nettes Projekt

Der Reset müsste wirklich high sein.

Ein paar Fragen die helfen könnten das Problem einzukreisen:

Nimmst du das ISP-Headerkabel vom STK500 und hängst es jeweils an diese 
Platine an? Ich meine das sechspolige Kabel welches auf dem stk500 an 
die drei verschiedenfarbigen Anschlüsse gesteckt werden kann.

Wird der Resetpin high, wenn du das sechspolige ISP Kabel entfernst?

Welche Programmierumgebung verwendest du? AVR-Studio? Kriegst du 
Fehlermeldungen?

Was für Meldungen kriegst du wenn du die Fuses programierst?

Hast du am Resetpin einen Kurzschluss nach Masse? Frag mal ein Ohmmeter 
nach seiner Meinung :-)

Wird der Reset high, wenn du den Controller aus der Fassung nimmst?

Hast du ein Oszilloskop mit welchem du prüfen kanst ob sich auf den 
Programmierleitungen etwas tut?

Greetz
David

von Ginu (Gast)


Lesenswert?

Peinlicher Fehler Nummer 2 gefunden...

Oben links im Eck überlappt eine anfangs gezogene Masselinie, die durch 
die spätere Massefläche nicht mehr gebraucht wurde, beide Pads des 
Kondensators C4. Is dann natürlich klar, dass Reset immer 0 ist... :>

Reset ist jetzt aktuell also high

Ich arbeite mit einer JTAG Ice mkII und dann auch mit dem 6poligen 
Kabel. Ist auch richtig rum dran. Habe das alles durchgemessen und mit 
dem orginal STK500(wo natürlich alles funktioniert) verglichen.


> Was für Meldungen kriegst du wenn du die Fuses programierst?

Das einzige was ich ändere ist auf den externen Quarz umzustellen. Das 
klappt aber einwandfrei und wird immer mit OK bestätigt. Ich würde mal 
behaupten, dass es im Bereich Fusebits keine Probleme gibt

> Wird der Resetpin high, wenn du das sechspolige ISP Kabel entfernst?

Ist jetzt immer high :)

> Welche Programmierumgebung verwendest du? AVR-Studio? Kriegst du
> Fehlermeldungen?

AVR Studio 4.18 SP3

Die Meldungen kommen immer bei "Build and Run":

Was aktuell immer kommt:
"Unable to connect to device. This could be caused by reset line 
circuitry or disabled debugwire Interface. Make sure that the reset line 
is free before continuing."(Hatte gedacht evtl. wären die Fusebits 
falsch, aber müsste doch so stimmen: SPIEN und CKDIV8 haben Haken, der 
Rest nicht)

Vorhin kam kurzzeitig mal:
"A device with ID 0x5555 was found.This device is unknown or unsupported 
... AVR Studio..." (kann mich nicht mehr genau erinnern)

Und es kam auch:
"The target device is 0.0000V....." (Spannung war allerdings am ATMEGA 
und auch am 6-pol Stecker vorhanden)

> Hast du ein Oszilloskop mit welchem du prüfen kanst ob sich auf den
> Programmierleitungen etwas tut?

Ein Oszilloskop habe ich da.




Was jetzt funktioniert:
JTAGICE mkII in ISP Mode (Fusebits, Programm über die .hex Datei 
aufspielen, Signatur lesen)
Reset ist high
Die LED leuchtet ;)

Was nicht funktioniert:
Debug-Modus
Programm über "Build and Run" aufspielen
Kommunikation über RS232-Schnittstelle(Programm ist ja drauf und sollte 
dann ja auch ohne Debugmodus laufen, gleiches Programm auf STK500 läuft)

von spess53 (Gast)


Lesenswert?

Hi

Hast du Debug-Wire aktiviert?

MfG Spess

von Ginu (Gast)


Lesenswert?

das mach ich doch über die fusebits? wie gesagt sind nur Häkchen bei 
SPIEN und CKDIV8. Da das ja invertiert ist müsste der Rest ja an sein, 
oder nicht?

von David (Gast)


Lesenswert?

> Oben links im Eck überlappt eine anfangs gezogene Masselinie, die durch
> die spätere Massefläche nicht mehr gebraucht wurde, beide Pads des
> Kondensators C4. Is dann natürlich klar, dass Reset immer 0 ist... :>

Jep, da sind ein paar rote Pixel :-) Dein Ohmmeter hätte dir das sagen 
können ;-)



> Reset ist jetzt aktuell also high

Ein Problem weniger also.


> Ich arbeite mit einer JTAG Ice mkII und dann auch mit dem 6poligen
> Kabel. Ist auch richtig rum dran. Habe das alles durchgemessen und mit
> dem orginal STK500(wo natürlich alles funktioniert) verglichen.
>

den Jtag ice mkII kene ich nicht. Auch mit der Debugwire habe ich noch 
nie gearbeitet. Aber man muss diese ja über die Fuses aktivieren. Hast 
du das gemacht? Achtung, nachher kannst du nicht mehr über ISP 
programmieren.

http://www.mikrocontroller.net/articles/DebugWIRE

Für die RS232 müsstest du mal deinen Sourcecode posten . Aber zeurst 
solltest du mal sicher sein, dass it dem programmieren alles so läuft 
wie du es willst.

von spess53 (Gast)


Lesenswert?

Hi

>das mach ich doch über die fusebits? wie gesagt sind nur Häkchen bei
>SPIEN und CKDIV8. Da das ja invertiert ist müsste der Rest ja an sein,
>oder nicht?

Du must als erstes unter 'Debug'->'Select Platform and Device' JTAG ICE 
MKII und den ATMega einstellen. Das AVR Studio weiss dann schon, das 
Debug-Wire notwendig ist. Wenn die Fuse nicht gesetzt ist wirst du beim 
Starten des Debuggers gefragt, ob die Fuse per ISP gesetzt werden soll.

MfG Spess

von Ginu (Gast)


Lesenswert?

@spess

Das hatte ich gemacht, da liegt dann also scheinbar kein Fehler. Werde 
ja auch nicht nach irgendwelchen Fuses gefragt


@david

fast das gleiche wie bei spess. DWEN hat kein Häkchen, ist also gesetzt 
so wie ich das sehe, oder nicht? ISP funktioniert aber noch.

Zur Software: Da kann man davon ausgehen, dass sie korrekt ist. Läuft ja 
auf nem andren ATMEGA168, der auf meinem STK500 sitzt, einwandfrei.

von Maik M. (myco)


Lesenswert?

Ich kann's leider nicht genau erkennen, aber auf dem PCB schaut's so 
aus, als wäre Pin22 des Atmegas nicht mit Masse verbunden, sondern nur 
am Kondensator (C8).

Ansonsten, würde ich einfach mal den Max232 aus dem Sockel nehmen, das 
grenzt dein Problem dann etwas ein

von Ginu (Gast)


Lesenswert?

Das bei Pin 22 sieht nur so aus, weil die Massefläche ja nicht sichtbar 
ist. Die 100n C's sind dann halt über die Massefläche mit den Massepins 
des IC's verbunden.

Das mit dem MAX232 werde ich jetzt dann mal ausprobiern und berichten.

von Hubert G. (hubertg)


Lesenswert?

>das mach ich doch über die fusebits? wie gesagt sind nur Häkchen bei
>SPIEN und CKDIV8. Da das ja invertiert ist müsste der Rest ja an sein,
>oder nicht?

Im AVR-Studio sind die Häckchen nicht invertiert. Was angehakt ist, ist 
auch aktiv.

von Ginu (Gast)


Lesenswert?

hmm ok gut zu wissen, ich habe allerdings andere Fehler gefunden.


Als ich den C4 oben links bei der Resetleitung entfernt habe, hat der 
Debugmodus auf einmal funktioniert. Ich hatte den ja blind aus dem 
Mikrocontroller Tut übernommen, aber im Datenblatt zum µC steht davon 
auch nix drin. Was  hat der dnen für einen Sinn?

Und der schwerwiegendste Fehler, wieder mal sehr peinlich:
Ich habe scheinbar die Verbindungen zwischen ATMEGA und MAX232(Rxd und 
Txd) vertauscht. Keine Ahnung wie mir das passiert ist...

Naja aus solchen Gründen macht man ja sowas um aus den Fehlern zu 
lernen, aber ich muss mit meinen Gedanken da wohl auch noch woanders 
gewesen sein. Kann ja nicht angehen :/

Also neuster Stand: Beschreiben nun ganz normal möglich nach dem C 
ausgebaut. Senden noch nicht getestet. Muss erst die Bahnen ändern. Ich 
sag dann noch bescheid :)

von Maik M. (myco)


Lesenswert?

Der C4 war wohl zum stabilisieren des Reset-Pegels gedacht, damit bei 
einer kurzzeitigen Schwankung der Versorgungsspannung nicht gleich ein 
Reset ausgelöst wird. Aber in der Tat kann das dazu führen, dass der 
Reset beim programmieren verzögert wird.

Das mit dem TX/RX ist mir auch schon etliche male passiert... und ich 
denke auch dass es mir noch paar mal passieren wird :)

von Hubert G. (hubertg)


Lesenswert?

In der AVR-Application Note 042 steht, das bei Verwendung von Debug-Wire 
kein Kondensator von Reset nach GND vorhanden sein darf.

von Ginu (Gast)


Lesenswert?

Ah vielen dank für die Info!

Also nach dem Umbau funktioniert es jetzt! Da bin ich jetzt doch 
deutlich mobiler dank Batterie und der kleinen Platine :)

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.