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
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 :(
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
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)
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?
> 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.
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
@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.
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
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.
>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.
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 :)
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 :)
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 :)