mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Praxiskurs AVR-XMEGA-Mikrocontroller. Mit C von Anfang an. ( Buch von Günter Spanner )


Autor: Bernd S. (bernd_stein)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

habe mir das Buch von Günter Spanner ( Praxiskurs 
AVR-XMEGA-Mikrocontroller Mit C von Anfang an ) zugelegt, da für mich 
als Hobbylöter nichts gegen die ATxmegas spricht ;-). Besitze ebenfalls 
das darin beschriebene Evaluation Kit XMEGA-A3BU XPLANED.

Im Buch ist beschrieben ( Seite 49 ), dass nach dem Einstecken des 
USB-Kabels über einen ( eingeschalteten ) PC die Grüne LED aufleuchten 
sollte. Habe bereits das erste Board deswegen zurückgeschickt. Leider 
jetzt wieder den gleichen Zustand. Das PortD5-Bit ( Pin31 ) des µC ( 
Power_LED ) ist auch auf low, was diesen Zustand hervorbringt.

Problem ist halt, das der Atmel-ICE nicht auf das Board zugreifen 
kann, da die Target Voltage als *0,0V* angezeigt wird.

An J3 sind 4,87V ( Pin9 gegen 10 ) und an J1 3,30V ( Pin9 gegen 10 )
vorhanden. Das Menü im Display kann wunderbar bedient werden.

Was ist nun das Problem ?

Den Schaltplan ( XMEGA-A3BU Xplained schematics ) und noch weitere Dinge 
gibt es hier :

https://www.microchip.com/webdoc/xmegaa3buxplained...


Bernd_Stein

: Bearbeitet durch User
Autor: Häääh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd S. schrieb:
> Problem ist halt, das der Atmel-ICE nicht auf das Board zugreifen
> kann, da die Target Voltage als *0,0V* angezeigt wird.

Musst du die richtige Verbindung / den richtigen Adapter wählen.
Das muss sicher funktionieren. Sowohl PDI als auch JTAG.

Bernd S. schrieb:
> Was ist nun das Problem ?

Dass du keinen Durchblick hast und wir noch weniger da wir nicht
alles genau sehen was du hast und machst. Dazu müsstest du
mehr beschreiben.

Bernd S. schrieb:
> Im Buch ist beschrieben ( Seite 49 ), dass nach dem Einstecken des
> USB-Kabels über einen ( eingeschalteten ) PC die Grüne LED aufleuchten
> sollte.

Für USB brauchst du aber sicherlich einen Treiber der irgendwo her
kommen muss. Dann musst du den USB Port im Atmel Studio auch noch
selektieren.

Prüfe im Device Manager (Windows) ob dein USB Port sichtbar ist
wenn du dein XPLained Board angeschlossen hast.

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du ein anderes USB Kabel und einen anderen USB Anschluss am PC 
versucht?

Autor: Dieter F. (jim_quakenbush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuch es doch mal mit dem JTAG-Adapter:

Because  JTAG  TDO  and  PDI  DATA  are  connected  on  the  PCB  for 
this  kit,  JTAG must be disabled on the device in order to use PDI. The 
reason for this is that when JTAG  is  enabled  it  will  enable  a 
pull-up  internally  on  TDO  which  interferes  with  the
PDI initialization sequence.

Mit PDI wird das im Ursprungszustand wohl nichts ...

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat das Board denn wirklich keine Versorgungsspannung?

Autor: Bernd S. (bernd_stein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure bisherigen Vorschläge. Update gerade ATMEL-STUDIO 7.0.

Hab gerade nur eine USB-Spannungsversorgung angeschlossen und an J3, 
4,90V gemessen. Das sollte eigentlich reichen, um die grüne LED zum 
leuchten zu bringen. Der hier nachfolgend beschriebene Jumper war immer 
gesteckt.

Suche jetzt trotzdemhalber mal was, was 5,00V bringt.

" XMEGA-A3BU Xplained Hardware Users Guide
Connecting the kit

USB power supply

Connect a USB cable between the board and a PC *or a USB power supply to 
power the kit.* When power is applied the power/status LED will light up 
in green (unless the application software turns the LED off).

Warning

Do not power the board without having the jumper next to the USB 
connector or an amperemeter mounted. Otherwise, the device may be 
damaged. "


Bernd_Stein

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
4,9V sind schon Ok.

Laut Schaltplan werden beide LEDs durch I/O Pins vom Mikrocontroller 
angesteuert. Wenn die nicht an gehen kann das durchaus am Programm (bzw. 
an nicht vorhandenen Programm) liegen.

> Mit PDI wird das im Ursprungszustand wohl nichts ...

Da bin ich unsicher. Ich hatte bisher nur mit einer Sorte Xmega Boards 
zu tun, und die habe ich alle nur über PDI angesprochen (ich besitze gar 
keinen JTAG Adapter).

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Mikrocontroller hat ja 3,3V Versorgung, prüfe die mal. An den 5 
kleinen Kondensatoren rund um den Chip müssten die 3,3V zu messen sein.

1 unten
1 rechts
2 oben
1 links

Mehr als Stromversorgung braucht der Chip eigentlich nicht, um über PDI 
ansprechbar zu sein.

PDI CLK ist zugleich die Reset Leitung. Mein Programmieradapter meckert 
mit einer eindeutigen Meldung, wenn diese Leitung kurzgeschlossen oder 
zu hoch belastet wird.

Du könntest mal LEDs (+1k Vorwiderstand) an die PDI Leitungen hängen, um 
zu sehen, ob da überhaupt eine Kommunikation stattfindet. Oder besser 
noch einen Logic Analyzer oder Oszilloskop, falls du so etwas besitzt.

Bist du sicher, dass die PDI Schnittstelle deines Programmieradapter 
nicht defekt ist?

: Bearbeitet durch User
Autor: Bernd S. (bernd_stein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> 4,9V sind schon Ok.
>
Das denke ich auch. Habe aber trotzdem nun eine andere 
USB-Spannungsversorgung genommen und das LCD-Backlight ausgeschaltet, 
was mir die gewünschenten 5,00V bringt. Möchte ungern auf 5,1V gehen. 
Mess jetzt erstmal in der Schaltung, ob diesmal nicht wirklich ein 
Hardwaredefekt vorliegt.

" When power is applied the power/status LED will light up
in green (unless the application software turns the LED off). "


Bernd_Stein

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das stimmt, die LED müsste an gehen, solange der entsprechende I/O Pin 
nicht absichtlich auf Low geschaltet wird. Das kann an fehlender 
Spannungsversorgung des µC liegen oder dass doch schon ein Programm 
installiert ist. Dann müsste die LED aber wenigstens während des Reset 
leuchten. Kannst du ja mal ausprobieren.

: Bearbeitet durch User
Autor: Bernd S. (bernd_stein)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Das kann an fehlender
> Spannungsversorgung des µC liegen oder dass doch schon ein Programm
> installiert ist. Dann müsste die LED aber wenigstens während des Reset
> leuchten. Kannst du ja mal ausprobieren.
>
Habe nun wieder nur die PC-USB-Verbindung aufgesteckt, welche 4,80V 
bringt.
Also Pin31, wodurch die LED eingeschaltet werden würde liegt auf 0,6V im 
200mV-Bereich des DMM. Der µC sieht perfekt verlötet aus, so das ich mir 
die Masse von J3 Pin9 geholt habe. Die Vcc-Pins 15,25,35,45 und 53 
weisen alle 3,30V auf.

Am JTAG bzw. PDI Steckerpfosten messe ich auch die 3,30V ( Vcc ) gegen 
die beiden GND dieses Steckerpfostens.

Wieso meinst du das bei einem Reset die LED angehen würde ?
Es kommt doch sicherlich auf das Programm an. Bei einem Reset sind die 
Ausgänge doch bestimmt als hochohmige Eingänge geschaltet, so wie man es 
von den Tinys und Megas her kennt.

Seltsam ?
Habe am JTAG/PDI Steckerposten J301 Pin6 über einen 4k7 mit Pin2 
verbunden, also den Reset erzeugt und nun leuchtet tatsächlich die LED 
in grün und das LCD-Backlight ging aus, aber Enter, Back usw. ist noch 
zu lesen.

Ah, der 1MOhm Pullup am NMOS-FET läßt diesen durchschalten. Alles klar.

So und nun ?


Bernd_Stein

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Also Pin31, wodurch die LED eingeschaltet werden würde liegt auf 0,6V im
>200mV-Bereich des DMM.

Wie stellst 600mV im 200mV-Bereich des DMM fest?

MfG Spess

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wieso meinst du das bei einem Reset die LED angehen würde ?

Weil der I/O Pin dann hochohmig ist (sofern der µC nicht defekt oder 
Stromlos ist) und der 1M Ohm Pull-Up Widerstand den MOSFET vor der LED 
eisnchaltet.

0,6V sind seltsam. Es müsste entweder annähernd 0V oder 3,3V sein. Es 
sei denn, der µC steuert den Pin mit einem pulsierendem Signal an. 
Kannst du das prüfen?

Durch den 4,7k Ohm Widerstand konntest du bestätigen, dass der Reset Pin 
funktioniert.  Wenn du das Kabel deines Programmieradapters entfernst, 
leuchtet die LED dann auch (wenigestens einmal kurz beim Einstecken des 
USB kabels)?

Autor: Bernd S. (bernd_stein)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Wie stellst 600mV im 200mV-Bereich des DMM fest?
>
Da hat mal wieder jemand genau aufgepasst ;-). Ich denke du weißt, das 
es nur 0,6mV also annähernd 0V sind.

Stefanus F. schrieb:
> Wenn du das Kabel deines Programmieradapters entfernst,
> leuchtet die LED dann auch (wenigestens einmal kurz beim Einstecken des
> USB kabels)?
>
Hab den Fehler gefunden. Es war der 10 auf 6 auf 10pin Adapter ( 1 ). 
Adapter ( 2 ) ging nicht, da der USB-Stecker ( 3 ) störte. Die grüne LED 
des ATMEL-ICE ( 4 ) geht an, wenn die Versorgungsspannung der 
Zielplatine in Ordung ist.

Wie man sieht ist die grüne LED auf dem Board trotzdem nicht an.
So was macht einen Anfänger natürlich ganz schon zu schaffen, wenn die 
Beschreibung, was eigentlich passiert, fehlerhaft ist.

Danke an alle die hier mitgewirkt haben, diesmal war kein Troll dabei 
:-).


Bernd_Stein

Autor: Dieter F. (jim_quakenbush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schön, dass Du jetzt auch das JTAG-Interface nutzt :-)

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich denke du weißt, das es nur 0,6mV also annähernd 0V sind.

Hmm, es hätte genausogut auch 600mV in einem anderen Meßbereich sein 
können. Oder 60mV.

Also wenn es 6mV sind, dann wurde dieser Pin mit Sicherheit absichtlich 
auf Low geschaltet. Wenn es kein ungewollter Kurzschluss war, dann wohl 
das Programm auf dem µC.

Durch einen Reset beendest du das Programm, dann müsste der Pin auf High 
gehen.

Autor: Bernd S. (bernd_stein)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wie bekomme ich die Template für das XMEGA-A3BU XPLAINED geladen bzw. 
installiert, so wie es im Videobild ( Templates ) gezeigt ist ?
Bei mir sieht es eben so aus, wie im Bild ( NewProject_Templates ).

Bernd_Stein

Autor: Dieter F. (jim_quakenbush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd S. schrieb:
> Wie bekomme ich die Template für das XMEGA-A3BU XPLAINED geladen bzw.
> installiert, so wie es im Videobild ( Templates ) gezeigt ist ?

Frag doch mal den Autor des Buches - der sollte es ja wissen.

Autor: Bernd S. (bernd_stein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieter F. schrieb:
> Frag doch mal den Autor des Buches - der sollte es ja wissen.
>
Hey, warum fängst du jetzt an zu trollen ?


Bernd_Stein

Autor: Rufus Τ. F. (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd S. schrieb:
> Hey, warum fängst du jetzt an zu trollen ?

Was ist daran Trollerei? Wenn der Buchautor etwas beschreibt, was so 
aber nicht klappt, dann ist der tatsächlich für Deine Fragen zuständig. 
Du hast ihm immerhin Geld für das Buch bezahlt.

Ansonsten scheinst Du eine andere Version des Atmel Studio zu verwenden, 
oder Du hast es anders installiert als der Autor, denn bei Dir gibt es 
unter "Templates" keine "Atmelboards".

Autor: Dieter F. (jim_quakenbush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd S. schrieb:
> Hey, warum fängst du jetzt an zu trollen ?

Man sollte nie von sich auf andere schliessen :-)

Ich kenne weder das Buch noch den Autor und nur der kann die Frage 
beantworten.

: Bearbeitet durch User
Autor: Thosch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das im rechten Fenster ist ein ASF Board Projekt, links hast du ein C 
Executable Projekt gewählt. Das ist der falsche Startpunkt, wenn du 
Board Templates verwenden möchtest.

Autor: Bernd S. (bernd_stein)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Rufus Τ. F. schrieb:
> Ansonsten scheinst Du eine andere Version des Atmel Studio zu verwenden,
> oder Du hast es anders installiert als der Autor, denn bei Dir gibt es
> unter "Templates" keine "Atmelboards".
>
Ja, so ist es. Da das Buch ( wie meistens ) etwas älter ist ( 1.Auflage 
2015 ) wird dort das ATMEL STUDIO 6.2 verwendet. Ich dachte nun, das man 
in der Version 7.0.1645 bestimmt so etwas auch nachträglich einbinden 
kann.

Habe nämlich das Programm auf Seite 106 ( Integer ) abgetippt, aber 
kriege es nicht fehlerfrei Compiliert und dachte es liegt evtl. daran.

Wenn ich die vorgefertigte Datei benutze geht es.

Habe also die selbstgetippte Datei unter src mit eingefügt ( 
K11S106_Integer.C ) und mit der rechten Maustaste => Compile.
main.C ist die Orginale Datei.

Bernd_Stein

Autor: Bernd S. (bernd_stein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thosch schrieb:
> Das im rechten Fenster ist ein ASF Board Projekt, links hast du ein C
> Executable Projekt gewählt. Das ist der falsche Startpunkt, wenn du
> Board Templates verwenden möchtest.
>
Oh, hat mir der Buchautor geschrieben ?
Scherz bei Seite.

Danke !!!

Also, File => New => Project. Dort GCC C ASF Board Projekt 
doppelklicken.
Select By Board anwählen und XMEGA-A3BU Xplained-ATxmega256A3Bu 
auswählen & OK-Botton klicken.

Bernd_Stein

: Bearbeitet durch User
Autor: Thorsten S. (thosch)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sollte auch mit Studio 7 gehen, siehe angehängte Screenshots:

Im New Project Dialog (wie bereits oben erwähnt) "GCC C ASF Board 
Project" wählen.
-> NICHT "GCC C Executable Project"

Dann kommt der Board Selection Dialog, hier kann man entweder nach 
Controller-Typ (By Device) auswählen und bekommt dann unten die Boards 
angezeigt, oder man wählt bereits oben nach Board-Typ aus (By Board)
kann dann noch entweder alle oder nur bestimmte Boards filtern lassen 
(z.B. Atmel-Boards) und wählt dann aus der langen Liste sein Board.

Es gibt also alles, es ist in den Menüs nur ein klein wenig anders 
gruppiert.
Wirklich schwierig fand ich das jetzt nicht zu finden.

Im ASF-Wizard kann man dann benötigte Driver, Components und Services 
hinzufügen, das sind die Bestandteile des ASF.
Im Project-Tree kann man auch einfach Source-Dateien aus anderen Quellen 
hinzufügen...

Autor: Thorsten S. (thosch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd S. schrieb:
> Oh, hat mir der Buchautor geschrieben ?
Nö das war ich; nur ein Studio7-User, der hin und wieder was mit XMegas 
macht und auch ein XPlained Board hat :)

Autor: Bernd S. (bernd_stein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thorsten S. schrieb:
> Beitrag "Re: Praxiskurs AVR-XMEGA-Mikrocontroller. Mit C von Anfang an. ( Buch von Günter Spanner )"
>
Danke für die bebilderte Ausführung dessen, was ich versuchte in Worte 
zu fassen.

Bin in dem Buch auf der Seite 134 / Kapitel 14.11 ( Verständnisfragen 
und Praxisübungen ).

Es geht um Kontrollstrukturen, also Verzweigungen, Schleifen und 
Sprünge.
Die if-Verzweigung, die else-Verzweigung, die else if-Verzweigung, der 
Ternäre Operator, die switch-Verzweigung, die while-Schleife, die do ... 
while-Schleife, die for-Schleife, die verschachtelte for-Schleife, die 
komplexe for-Schleife und der Abruch von Schleifen mittels break oder 
continue.

Jetzt kommt folgende Aufgabe :

" Ändern Sie die Schleifenindices und die Anzahl der Durchläufe in den 
Beispielprogrammen. Skizzieren Sie zunächst, welche Ausgaben Sie 
erwarten und vergleichen Sie diese dann mit der tatsächlichen Ausgabe 
auf dem LCD-Display ! ".

Sind Schleifenindices nicht das gleiche wie die Anzahl der Durchläufe ?

Bernd_Stein

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Anzahl der Durchläufe ergibt sich aus dem Startwert, der 
Schrittweite und dem Endwert des Index (Zähler).

Autor: Dieter F. (jim_quakenbush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd S. schrieb:
> Bin in dem Buch auf der Seite 134 / Kapitel 14.11 ( Verständnisfragen
> und Praxisübungen ).

Möglicherweise ist es hilfreich, wenn Du das zugehörige Kapitel liest 
und aufarbeitest :-)

Autor: Bernd S. (bernd_stein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Die Anzahl der Durchläufe ergibt sich aus dem Startwert, der
> Schrittweite und dem Endwert des Index (Zähler).
>
Müsst ihr immer diese verdeckten Hinweise geben ?
Das hätte mir schneller weitergeholfen :
" Der Begriff Index kommt aus dem Lateinischen, daher lautet die 
Mehrzahl „Indices“ oder nach den neuen Dudenempfehlungen „Indizes“ – 
nicht Indexe! "


Dieter F. schrieb:
> Möglicherweise ist es hilfreich, wenn Du das zugehörige Kapitel liest
> und aufarbeitest :-)
>
Wenn ich nicht gelesen hätte, dass du Ahnung von der Materie hast, hätte 
ich nur wie auch schon andere geschrieben:

              " Bleib mit deinem Gequake im Busch ".

Natürlich habe ich vorher schon die ganzen Kapitel nochmals durchgelesen 
und der Satz auf Seite 126 :
" Häufig wird die Zähl-Variable beginnend mit dem Buchstaben i ( für 
index ) bezeichnet. ", trägt leider nur zur Verwirrung bei.

" Ändern Sie die Schleifenindices und die Anzahl der Durchläufe ... "

Für mich ergeben ja gerade die Indices die Anzahl der Durchläufe. 
Wahrscheinlich meint er wohl, wie Stefan Frings es andeutet, damit die 
Schrittweite.

Dieter F. schrieb:
> Frag doch mal den Autor des Buches - der sollte es ja wissen.
>
Der wird anscheinend vom Elektorverlag so abgeschirmt, das dies direkt 
nicht möglich ist. Oder hast du seine eMail-Adresse ? ;-)
Selbst Jürgen D. Hennig habe ich am 19ten hier über das Forum 
angeschrieben und bisher noch keine Antwort bekommen. Denkst du Autoren 
haben nichts besseres zu tun, als auf die tausende von eMails zu 
reagieren ?
Auch sie sind keine Götter und machen Fehler oder schreiben nicht für 
jeden verständlich.

Also lass doch bitte in Zukunft solche Antworten.


Bernd_Stein

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.