Wie schon geschrieben. Wie debugt Ihr euren ATmega mit AVRStudio? Wie seht ihr, was im Prozessor "abgeht"? Ich möchte nicht simulieren, sondern auslesen welche Variablen welche Werte haben. Gibts einen Artikel oder eine Anleitung hierrüber? Bisher habe ich mir solche Sachen über ein LCD ausgegeben, aber leider ist nun mein LCD kaputt und ohne Umwege habe ich auch keine Pins mehr frei am µC. Ich habe ein STK500 und ein AVRISPmkII zur Verfügung.
Servus, debugge mit dem AVR - Dragon, bin damit mehr als zufrieden und ich denke für den Hobby - Bereich mehr als ausreichend. Ist auch relative Günstig, für das was es kann. Gruss
Danke für die Info. Gibt es eine Anleitung für den Dragon oder wo muss ich nachschauen? AVRstudio? oder ist beim dragon eine dabei?
Da ist auch immer die Rede vom debugWire - wie muss ich mir das vorstellen? Wird da ein Pin "geopfert" für die Debug-Information?
Nein, der Reset-Pin wird dafür verwendet. Mit dem Dragon oder dem ICE-MKII geht das wunderbar. Gruß Fabian
>Wie seht ihr, was im Prozessor "abgeht"?
Simulieren, mit VMLAB. Zum Verständnis, was der Prozessor tatsächlich
macht, ist das genial.
Leider nicht ganz fehlerfrei, dafür kostenlos.
Oliver
So ich hab mir nun den Dragon besorgt. Vielleicht kann mal jemand, der den Dragon kennt und benutzt, sagen wie der Ablauf ist. Weil ich mir nicht sicher bin wie ich mit der Fuse umgehen soll: Ich habe das Dragon.Board mit USB verbunden und wird im Studio erkannt. Es ist als Debug-Plattform angegeben. Nun habe ich meinen Controller (mega88) auf einer platine eingebaut, dort ist habe ich eine ISP Schnittstelle. Nun zur Vorgehensweise: Ich habe die Connections auf dem dragon-Board geprüft und nun die ISP-Schnittstelle (Dragon-Board) mit der ISP-Schnittstelle (Anwendung) verbunden. Jetzt müsste oder sollte ich die Fuse dwen setzen. Bevor ich das mache, wie kann ich die wieder zurücksetzen, da ja dann der Reset-Eingang "außer Funktion" ist. Wie kann ich dann meinen Prozessor wieder programmieren? Geht das auc über das Dragon-Board?
> Gibt es eine Anleitung für den Dragon oder wo muss ich nachschauen? Gibt es auf Deinem Rechner. In AVR-Studio gibt es einen Menüpunkt namens "Help". Dort werden auch alle Tools beschrieben, die das AVR-Studio unterstützt, also auch der Dragon. Der Dragon selbst wird ohne Dokumentation ausgeliefert. > Bisher habe ich mir solche Sachen über ein LCD ausgegeben, aber leider > ist nun mein LCD kaputt ... Bei Pollin gibt es gut verwendbare LCDs zu Preisen ab 2 Euro. Das sind zwar Industrie-Restposten, aber neu (im Sinne von unbenutzt) und erstklassige Qualität. Viele Leute debuggen auch über UART, dazu ist aber ein baudratentauglicher Quarz ratsam. Mir reicht zum Debuggen oftmals eine LED, die ich an bestimmten Stellen ein/aus-schalte oder ein PWM-Pin, an dem ich mittels Multimeter den Tastgrad ablesen kann. Natürlich nutze ich auch gern ein LCD zum Debuggen, aber manche Schaltungen arbeiten nunmal ohne LCD auf kleinen Tinies... ;-) ...
> ..., sagen wie der Ablauf ist. - Dragon als ISP-Programmer connecten - DWEN-Fuse aktivieren - Dragon als ISP disconnecten - Debugger hochfahren, dabei statt Simulator den Dragon auswählen - AVR-Typ auswählen - Debuggen wie im Simulator üblich (Haltepunkte, Einzelschritte, Watch...) - Im Debugger DWEN-Fuse wieder deaktivieren, um ISP wieder zu ermöglichen Musst mal ein bissel durch die Menüs blättern, AVR-Studio kann bedeutend mehr, als ein Gamekid mit der Maus anklicken kann. ...
Vielen Dank Hannes!!!!! Dann kann ich die Fuse also aktivieren! Zum Verständnis: Im "Debug-Modus" kann ich über ISP nicht umprogrammieren (auch nicht mit z.B. STK). Dafür muss ich immer erst die Fuse wieder zurücksetzen.
Das habe ich geahnt: Ich bekomme keine debugWire Connection! Ich habe zunächst ein 6-pol ISP Kabel vom Dragon zur Anwendug gesteckt - keine Verbindung! Ich habe danach die Stecker einzeln gesteckt und bin mit VCC vom Dragon zur ISP Dragon und zur ISP Anwendung. die restlichen Leitungen (insbesondere GND und Reset) direkt zwische ISP und ISP. Auf meinem Dragon-Board leuchtet eine schmale grüne LED und die 4-Pin LED leuchtet rot. Die Stromversorgung habe ich einmal über USB geholt und auch einmal mit zusätzlich eingeschalteter Stromversorgung von der Anwendung. Was gibts noch zu beachten? In der Beschreibung / Hilfe habe ich bisher noch nichts gefunden.
Der Reset - Jumper auf dem STK500 muss entfernt werden. Dann sollte es gehen, wenn du alles in AVRStudio eingestellt hast.
@Jim: IOch arbeite in der Anwendung nicht mit STK500 Aber ich habe das Problem nun gelöst: Ich hatte den Reset-PIN in der Anwendung mit einem 100nF und 10k und einer Diode beschaltet. NAchdem ich nach und nach alles ausgelötet habe funktionierts - Gott sei dank! Also debug-Wire Modus funktioniert bei mir bei Nichtbeschaltung des Reset-Pins. Danke hier ans Forum für die vielen Infos...
Stimmt nicht ganz, am Reset darf kein C sein und ein R mit max 10k oder so... steht aber in der Anwendungsanleitung zu DBWire im Controllerdatenblatt. Diese Resetbeschaltung ist in Testanwendungen meist sowieso nicht notwendig. Gruß Fabian
Stimmt nicht ganz...: Hier in der Beschreibung:
1 | Problem: Not able to communicate with device through debugWIRE |
2 | Reason: RESET pullup resistor to small |
3 | Solution: Remove or increase the pull-up value to 10K ohm or more. |
Scheinbar hatte bei mir aber zusätzlich noch die Diode gestört. Obwohl c und r weg waren ging es immer noch nicht.
Hallo, es ist ein fitzelchen ab vom Thema aber ich versuch's trotzdem: ich arbeite ebenfalls mit ATMega88 bzw. ATMega168 und AvrDragon. Wie in http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=62834 besprochen, haben einige Leute (dummerweise auch ich) Probleme bei Prozessorfrequenzen >1MHz (Fuse CLK/8 disabled). Ich habe es gestern noch ausprobiert: Alle Typen die mir zur Verfügung stehen (ATMega48/ATMega88/ATMega168) krachen meist schon beim flashen - spätestens aber nach den ersten Single-Step-Schritten mit der Fehlermeldung derart, dass die Hardware nicht mehr reagiert und die Debugsitzung abgebrochen wird. Wie sieht das bei Euch aus? Ich frage deshalb: Bin immer noch auf der Suche, was ich falsch mache (RESET/dW ist bei mir nur mit dem Dragon verbunden). Diejenigen, die keine Probleme haben: Welche Firmware habt Ihr auf dem Dragon und wo ist der Dragon angeschlossen (direkt am PC oder Hub evt. fremd versorgt?).
> Ich hatte den Reset-PIN in der Anwendung mit einem 100nF und 10k und > einer Diode beschaltet. Dies ist ein alter Zopf aus der Zeit der Classic-AVRs als billiger Ersatz für einen externen BrownOut-Baustein. Seit die AVRs einen internen BrownOut-Detektor haben, brauct man sowas nicht mehr, im Gegenteil, es ist sogar störend. Ich beschalte Reset nur mit einem PullUp-Widerstand. Vor DW war es 3k9..4k7, jetzt ist es meist gut 10k (11k5, weil ich davon eine ganze Rolle habe). > Probleme bei Prozessorfrequenzen >1MHz Kann ich nicht nachvollziehen. Ich muss aber gestehen, dass ich den Dragon nur selten als Debugger nutze. Und da ich in ASM programmiere genügt mir meist auch der 1MHz-Takt. ...
Zusatz: Welche ISP-Frequenz für Dragon-Betrieb hat sich als gut erwiesen? Bei mir hakt es schon mal mit dem debug-Modus.
Immer ruhig und gediegen, 1/8 MHz reicht völlig zu. Man muss nicht immer am Limit arbeiten. Es kann durchaus sein, dass Deine Anschließerei nicht ganz korrekt ist, schau mal in der Hilfe zum Dragon nach, da gibt es eine Liste der unterstützten AVR-Typen mit Links zu Anschluss-Schaltbildern für die jeweils unterstützten Betriebsarten. ...
>Immer ruhig und gediegen, 1/8 MHz reicht völlig zu. Man muss nicht immer >am Limit arbeiten. Richtig. Deswegen habe ich mich bisher ruhig gehalten. Ich habe aber jetzt eine Anwendung, bei der ich hoch auflösende Timer und schnelle Interrupt-Antwortzeiten brauche. Da ich bei meinen Prototypen mit DIL Gehäusen arbeite, habe ich mir Adapter gebaut. Wenn ich die von dem Rest der Schaltung trenne, habe ich: GND, VTref(verbunden mit Vcc) und RESET sonst nix. Auch dabei kommt es sehr schnell zu Fehlern. Wie (vielleicht noch nicht) gesagt: Mit CLKDIV8 / 1MHz kann ich debuggen bis der Arzt kommt. Der einzige Fehler, den ich 1-2* pro Tag bekomme ist, dass nach einer Debug Sitzung der Dragon nicht mehr korrekt erkannt wird. Da kann ich mir aber behelfen, indem ich - den Dragon abklemme - beim Windows-Geräte-Manager das Device Jungo/WinDriver deaktiviere und wieder aktiviere - den Dragon wieder anklemme
Hi Auch ich kenne das Problem, nicht immer zu wissen, wo meine Fehler sind. Daher habe ich mir ein kleines Programm auf dem PC geschrieben, welches die Variablen über die serielle Schnittstelle des MC ausliest (Momentaufnahme oder alle 100 ms). Da ich das Pollin - Board benutze, ist das kein allzugroßes Problem. Die serielle Verbindung brauche ich sowieso, und daher ist der zusätzliche Aufwand im MC gering. Falls Interesse besteht, kann ich die SW gern zur Verfügung stellen. Ist nix besonderes, daher stellt keine zu großen Erwartungen.... Gruß oldmax
Hi Ich hab das Programm gestern nochmal etwas überarbeitet und stelle es nun zur Verfügung. Es besteht aus einer Dokumentation in Word und einem kleinen Programm zur seriellen Kopplung mit einem Controler. Das Programm ist ausgelegt für Programmierung in Assembler, kann aber auch für andere Sprachen genutzt werden. Falls Fragen sind, laßt es mich wissen. Gruß oldmax
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.