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 :)
In der AVR-Application Note 042 steht, das bei Verwendung von Debug-Wire kein Kondensator von Reset nach GND vorhanden sein darf.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.