Forum: Mikrocontroller und Digitale Elektronik Debugging Möglichkeiten


von Stefan S. (sschultewolter)


Lesenswert?

Hallo,

ich arbeite derzeit viel mit den kleineren Atmel AVRs rum.

Das wäre Attiny13, Attiny24/44/85, Attiny25/45/85, (geplant Attiny841 
und Attiny2312), sowie den Atmega328P.

Das ganze mache ich in Atmel Studio.

Nun gibt es immer mal Probleme, dass ein Code nicht richtig geschrieben 
wird. Ein Timer läuft nicht so schnell wie gewünscht, weil Prescaler 
falsch gesetzt sind.

Manche Sachen kann man schon mit einer Led ganz gut erkennen. Ua. ob ein 
Timer Interrupt aufgerufen wird.

Die Atmels werden über einen DIAMEX ISP Programmer beschrieben.

Von größeren Automatisierungsteuersystemen und deren Software kenne ich 
das, das man bestimmte Werte überwachen kann, während die Anlage im 
Betrieb ist. (Bernecker&Rainer).

Gibt es sowas auch für Atmel Studio. Wenn möglich, dass es über den 
Programmer zurückgeführt wird.

Die meisten Atmels die ich nutze haben keinen Hardware UART, so kann ich 
auch kein Bluetooth anschließen, dass wir die Werte an die Konsole 
überliefert. Ich besitzte zusätzlich 2 FTDI Breakouts. Diese aber mit 
dranzuklemmen finde ich umständlich und etwas unstabil, da meine 
Schaltungen auf dem Breadboard stattfinden.

Software UART möchte ich vermeiden, falls es geht.

Gibt es dazu was passendes oder bin ich mit den Atmels da falsch?

Alternativ, gäbe es ein passendes Entwicklungsboard zu empfehlen, 
welches ggf. den Programmer mitliefert und nur über USB angeschlossen 
werden muss. Habe mir den STK500 bereits angeschaut. Der wäre vom Aufbau 
perfekt, da er sehr viele meiner MCUs bereits unterstützt. Attiny84 zB. 
offizel nicht. Aber da soll es dennoch möglich sein.

Vorteil bei einem solchen Entwicklerboard, man hätte alles etwas 
robuster.

von Mike A. (Gast)


Lesenswert?

Stefan S. schrieb:
> Nun gibt es immer mal Probleme, dass ein Code nicht richtig geschrieben
> wird. Ein Timer läuft nicht so schnell wie gewünscht, weil Prescaler
> falsch gesetzt sind.

In Atmel Studio gibt es den Simulator, mit dem du dir während des 
Programmablaufs Variablen und Register ansehen kannst. Über Zeitanzeige, 
Taktzähler und Stopuhr kannst du das Timing genau verfolgen.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Wenn man debuggen möchte sollte man sich schon einen µC aussuchen, der 
das kann. Oder der auch  einen UART für Debuggen noch frei hat.

Die PIC's werden mit 2 Drähte programmiert und die haben gute debug 
Möglichkeiten.

Oder größere mit einem ARM Cortex-M3 Kern (STM32 oder LPC1XXX) können 
schon direkt über USB programmiert werden ohne zusätzliche HW. Die haben 
auch bis zu 8 UART's drin.

von dunno.. (Gast)


Lesenswert?

Stefan S. schrieb:
> Von größeren Automatisierungsteuersystemen und deren Software kenne ich
> das, das man bestimmte Werte überwachen kann, während die Anlage im
> Betrieb ist. (Bernecker&Rainer).
>
> Gibt es sowas auch für Atmel Studio. Wenn möglich, dass es über den
> Programmer zurückgeführt wird.

Das was du suchst, ist ein JTAG Debugger. JTAG ICE / AvrDragon fallen 
mir da ein.
Bei größeren Projekten würde ich ungern drauf verzichten. Muss natürlich 
der Controller auch können, belegt halt ein paar pins in der 
Applikation..

von Thomas E. (thomase)


Lesenswert?

Stefan S. schrieb:
> Das wäre Attiny13, Attiny24/44/85, Attiny25/45/85, (geplant Attiny841
> und Attiny2312), sowie den Atmega328P.

Diese Controller verfügen alle über Debugwire. Mit JTAGICE, AVR-ICE oder 
Dragon lassen die sich debuggen. Da hierfür der Reset-Pin verwendet 
wird, werden auch keine zusätzlichen Pins dafür ver(sch)wendet.

mfg.

von c-hater (Gast)


Lesenswert?

Stefan S. schrieb:

> Nun gibt es immer mal Probleme, dass ein Code nicht richtig geschrieben
> wird. Ein Timer läuft nicht so schnell wie gewünscht, weil Prescaler
> falsch gesetzt sind.

Wie meinst du das? Fehler beim Programmieren oder Fehler im Programm 
selber?

Fehler beim Programmieren sind (fast) unmöglich, weil man einfach nach 
dem Flashen den Flashinhalt mit der zu schreibenden Datei vergleichen 
kann. Standardmäßig ist das sogar bei allen Versionen des 
AVR-/Atmel-Studio so eingestellt.

> Von größeren Automatisierungsteuersystemen und deren Software kenne ich
> das, das man bestimmte Werte überwachen kann, während die Anlage im
> Betrieb ist. (Bernecker&Rainer).

Und was hat das mit der Programmierung zu schaffen?

> Gibt es sowas auch für Atmel Studio. Wenn möglich, dass es über den
> Programmer zurückgeführt wird.

Dafür sind die meisten Programmer weder gedacht noch geeignet.

> Die meisten Atmels die ich nutze haben keinen Hardware UART

Nun, dann macht man halt einen Software-UART drauf.

> so kann ich
> auch kein Bluetooth anschließen

Das kann man dann.

> Software UART möchte ich vermeiden, falls es geht.

Mit welcher Begründung? Die sollte wirklich sehr gut durchdacht sein, 
um nicht sofort in der Luft als Scheinargument zerrissen zu werden...

Mit Sachen wie "mein Programm nutzt exzessiv _delay(), deshalb geht 
Soft-UART nicht" gehst du baden. Da kriegst du nur den Tip: Lerne 
Programmieren.

von Frank K. (fchk)


Lesenswert?

> Gibt es dazu was passendes oder bin ich mit den Atmels da falsch?

Du hast nicht die beste Wahl getroffen. AVRs haben zwar ihre Vorteile, 
aber die Peripherie gehört nicht dazu. Bei den PICs gibt es eine größere 
Auswahl an Peripherieeinheiten und besser mit Peripherieeinheiten 
ausgestattete Controller, und zwar nicht nur unter den alten 8 Bit 
Architekturen, sondern auch bei den 16 und 32 Bittern. Die 16 Bitter 
fangen bei 14 Pins an, die kleinsten 32 Bitter haben 28 Pins.

Zudem: Die Debuggingfähigkeiten der kleinen AVRs sind nicht sonderlich 
gut. ISP ist eine reine Programmierschnittstelle, DebugWire ein 
ziemlicher Krampf. Bei den PICs kannst Du so gut wie alle Typen (auch 
die kleinen) über das ICSP sowohl programmieren als auch debuggen. Wenn 
Zeit Geld isst, willst Du nicht darauf verzichten - Du bist dann einfach 
schneller fertig.

fchk

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.