Forum: Mikrocontroller und Digitale Elektronik Atxmega startet nicht korrekt


von Dschorim (Gast)


Lesenswert?

Ich habe mir einen ATxmega384C3 zugelegt.
Datasheet: 
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8361-8-and-16-bit-AVR-XMEGA-Microcontrollers-ATxmega384C3_Datasheet.pdf
diesen habe ich auf eine passende Adapterplatine gelötet; zu heiß 
geworden ist er aber ziemlich sicher nicht. Nachdem ich einen 32Mhz 
Crystal an PR0/PR1 angeschlossen hatte sowie eine die 3,3V 
Stromversorgung an Pin 24/25 angeschlossen hatte, ergab sich folgendes 
Problem:
an den anderen VCC's ergaben sich Spannungen zwischen 1,8 und 3,3V und 
der integrierte USB-DFU-Bootloader 
http://www.atmel.com/Images/doc8429.pdf meldete sich am Rechner nicht, 
obwohl PE5 mit GND verbunden war. Durchgemessen habe ich alle Pins; 
Lötbrücken gibt es keine. Was habe ich vergessen/falsch gemacht? oder 
ist einfach der Controller defekt?

von René H. (Gast)


Lesenswert?

Schaltplan?

Grüsse,
René

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Dschorim schrieb:
> eine die 3,3V Stromversorgung an Pin 24/25 angeschlossen
Nur dort?
Du musst Vcc und GND an alle Pins mit diesem Namen anlegen. Und 
jedes GND-Vcc Pärchen braucht seinen eigenen Blockkondensator (nicht 
umsonst sind die so hübsch beieinander: 14-15, 24-25, 34-35, 44-45, 
52-53, 60-61).

: Bearbeitet durch Moderator
von Jorim B. (Firma: None) (dschorim)


Angehängte Dateien:

Lesenswert?

Mehr ist das nicht...
Ich hab halt keine 3,3V Stromversorgung in Fritzing gefunden...

von Jorim B. (Firma: None) (dschorim)


Lesenswert?

Das heißt ich soll die selben 3,3 V über je einen Kondensator an die 
einzelnen GND-Vcc-Pärchen anschließen? Wie groß müssen die Kondensatoren 
sein?

von René H. (Gast)


Lesenswert?

Kondensatoren am Quarz fehlen. Abblock Kondensatoren fehlen.

Grüsse,
René

von René H. (Gast)


Lesenswert?

Jorim B. schrieb:
> Wie groß müssen die Kondensatoren sein?

100nF.

Grüsse,
René

PS: am Quarz ca. 22pF oder 27pF

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jorim B. schrieb:
> Das heißt ich soll die selben 3,3 V über je einen Kondensator an die
> einzelnen GND-Vcc-Pärchen anschließen?
Ja, so wie es im Datenblatt steht...

> Wie groß müssen die Kondensatoren sein?
Naja, bei der Leitungslänge von den anschlüssen zu den Pads sind die 
natürlich nahezu wirkungslos.

Sieh dir einfach mal an, wofür die Abblockkondensatoren da sind. Und 
überlege dann, ob das mit 3cm langen Leitungen noch so tadellos 
funktioniert:
http://www.lothar-miller.de/s9y/categories/14-Entkopplung

René H. schrieb:
> PS: am Quarz ca. 22pF oder 27pF
PS, auch dazu ein Wort:
http://www.lothar-miller.de/s9y/categories/33-Quarz

Dann ist leicht zu erkennen, dass der µC auf diesem Adapterboard nur 
suboptimal anschließbar ist...

: Bearbeitet durch Moderator
von René H. (Gast)


Lesenswert?

Lothar M. schrieb:
> Dann ist leicht zu erkennen, dass der µC auf diesem Adapterboard nur
> suboptimal anschließbar ist...

Naja, der Quarz ist so weit weg... das dürfte eh ein problem sein.

Grüsse,
René

von Jorim B. (Firma: None) (dschorim)


Angehängte Dateien:

Lesenswert?

Das heißt so...
die Stromversorgung dann halt an alle gnd-vcc-pärchen.

von René H. (Gast)


Lesenswert?

Nein, schau Dir Lothars Link an. Bitte lese auch Lothars Post genau 
durch. Schau hier in den Artikel nach, wie es gemacht wird.

Grüsse,
René

von Jorim B. (Firma: None) (dschorim)


Lesenswert?

Lothar M. schrieb:
> Sieh dir einfach mal an, wofür die Abblockkondensatoren da sind. Und
> überlege dann, ob das mit 3cm langen Leitungen noch so tadellos
> funktioniert:
> http://www.lothar-miller.de/s9y/categories/14-Entkopplung

So wie sich dass ließt braucht der Keramikkondesator vier Beinchen (zwei 
mal In; zwei mal Out). Die haben aber doch nomalerweise nur zwei 
Beinchen

von René H. (Gast)


Lesenswert?

http://www.atmel.com/Images/doc8278.pdf

Grüsse,
René

Jorim B. schrieb:
> So wie sich dass ließt braucht der Keramikkondesator vier Beinchen (zwei
> mal In; zwei mal Out). Die haben aber doch nomalerweise nur zwei
> Beinchen

Wie kommst Du denn da drauf? (also auf die vier Anschlüsse)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jorim B. schrieb:
> So wie sich dass ließt braucht der Keramikkondesator vier Beinchen (zwei
> mal In; zwei mal Out).
Ja, richtig, wenn man sich die Ursachen mal komplett durchüberlegt 
überlegt, ist es so. Lies einfach mal die verlinkten Threads zum Thema 
auch noch durch, dann müssen wir das hier nicht nochmal durchkauen.

> Die haben aber doch nomalerweise nur zwei Beinchen
Dann sieh dir das Bild auch noch an. Und sieh zu, dass du es in der 
Praxis möglichst annähernd so machst, auch wenn du es nicht genau so 
machen kannst.

Und wenn du meinst, es ginge anders besser oder einfacher oder 
"ausreichender", dann mach es so...

René H. schrieb:
> Wie kommst Du denn da drauf? (also auf die vier Anschlüsse)
Naja, die Kondensatoren im Atmel-Dokument brauchen nur 3 Anschlüsse: 
2xPlus und einmal GND... ;-)

: Bearbeitet durch Moderator
von Josef H. (josefh0)


Lesenswert?

Max external Clock 16MHz.

ApplicationNote_AVR1003.pdf, 2.2

Viel Erfolg.

von Schaltplanleser (Gast)


Lesenswert?

Josef H. schrieb:
> Max external Clock 16MHz.

Richtig. Der ATXmega kann keinen 32 MHz Quarz "treiben".
Will man 32MHz haben so muss man mit kleinerer Frequenz
starten und die PLL programmieren um auf 32MHz zu kommen.

von HG (Gast)


Lesenswert?

Zusätzlich: Die USB-Buchse braucht auch noch eine Masseverbindung (und 
vermutlich noch einen Pullup auf einer USB-Datenleitung um die 
USB-Datenrate festzulegen).

von Robert (Gast)


Lesenswert?

Schaltplanleser schrieb:
> Will man 32MHz haben so muss man mit kleinerer Frequenz
> starten und die PLL programmieren um auf 32MHz zu kommen

Oder man verzichtet gleich ganz auf den Quarz und arbeitet mit dem für 
viele (die meisten) Zwecke ausreichenden internen 32 MHz run-time 
calibrated and tuneable oscillator oder mit dem 2MHz run-time calibrated 
oscillator- womit die Xmegas ab Einschalten auch aktiv sind.

von Schaltplanleser (Gast)


Lesenswert?

Robert schrieb:
> mit dem für
> viele (die meisten) Zwecke ausreichenden internen 32 MHz

Ja, bis dann der nächste Thread aufpoppt:

Atxmega startet zwar aber die UART-Übertragung
arbeitet nicht korrekt.

von Robert (Gast)


Lesenswert?

Schaltplanleser schrieb:
> Ja, bis dann der nächste Thread aufpoppt

Die Xmegas gibts nun schon viele Jahre,
einen solchen Thread aber noch nicht :)

Wenn es keine ultrahohen UART-Frequenzen werden sollen ist auch der 
interne Takt beim Xmega für diesen Zweck hinreichend stabil.

von Jorim B. (Firma: None) (dschorim)


Angehängte Dateien:

Lesenswert?

Das heißt, ohne externen Quarz (ich habe vor den internen zu verwenden) 
sieht dass dann so aus

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Robert schrieb:
> Wenn es keine ultrahohen UART-Frequenzen werden sollen ist auch der
> interne Takt beim Xmega für diesen Zweck hinreichend stabil.
Die prozentuale Abweichung ist unabhängig von der absoluten 
Geschwindigkeit. 5% Fehler sind sowohl bei 9600 wie auch bei 11520 zu 
viel...

von Hobbyprogrammierer (Gast)


Lesenswert?

Jorim B. schrieb:
> sieht dass dann so aus

Die Elkos gehören direkt an den Spannungsregler und
nicht "irgendwo" hin.

von Bastian W. (jackfrost)


Lesenswert?

Josef H. schrieb:
> Max external Clock 16MHz.
>
> ApplicationNote_AVR1003.pdf, 2.2
>
> Viel Erfolg.

Laut Datenblatt geht "External Clock" bis 142 MHz, natürlich nur mit 
Prescaler damit der Takt dann <= 32 MHz ist. Also sollte ein 
Quarzoszillator gehen. Beim Quarz ist halt bei 16 MHz Schluss.

Gruß JackFrost

von Stefan F. (Gast)


Lesenswert?

Schau mal ins Datenblatt des Spannungsregler, welche Kondensatoren der 
braucht und wo sie platziert werden müssen.

von Ralf (Gast)


Lesenswert?

Lothar M. schrieb:
> Robert schrieb:
> Wenn es keine ultrahohen UART-Frequenzen werden sollen ist auch der
> interne Takt beim Xmega für diesen Zweck hinreichend stabil.
>
> Die prozentuale Abweichung ist unabhängig von der absoluten
> Geschwindigkeit. 5% Fehler sind sowohl bei 9600 wie auch bei 11520 zu
> viel...

Natürlich. Aber je geringer die Baudrate bei gegebener Taktfrequenz 
desto genauer die Justierung. Insofern sind hohe Baudraten mit höherem 
Fehler behaftet und die Kommunikation wird damit empfindlicher für 
Taktschwankungen.

von Stefan F. (Gast)


Lesenswert?

Es gibt noch einen Grund, warum geringe Baudraten weniger kritisch sind: 
Die Verzerrungen des Signals durch die Leitung.

Die Bits werden zeitlich in ihrer Mitte abgetastet. Je höher die Bitrate 
ist, umso warscheinlicher geraten verzerrte Flanken (Pegelwechsel) in 
den Moment der Abtastung.

Ich habe viel mit XMega128 Chips bei 32Mhz R/C Oszillator gebastelt, 
immer mit 115200 Baud. Das klappt, aber nicht so zuverlässig, dass ich 
es verkaufen würde. Der Oszillator driftet schon recht stark, wenn sich 
die Temperatur des Chips verändert.

Beste Ergebnisse erreichte ich mit folgender Initialisierungssequenz:
1
    // Set clock source to 32Mhz using the internal R/C Oscillator.
2
    OSC.CTRL|=OSC_RC32MEN_bm;
3
    while (!(OSC.STATUS & OSC_RC32MRDY_bm)); 
4
    CCP=CCP_IOREG_gc;
5
    CLK.CTRL=CLK_SCLKSEL_RC32M_gc; 
6
    // Synchronize to the calibrated 32kHz oscillator (needed for the UART)
7
    OSC.CTRL&=(~OSC_RC2MEN_bm);
8
    OSC.CTRL|= OSC_RC32KEN_bm;
9
    while (!(OSC.STATUS & OSC_RC32KRDY_bm)); 
10
    OSC.DFLLCTRL &= ~OSC_RC32MCREF_bm;
11
    DFLLRC32M.CTRL |= DFLL_ENABLE_bm;

von Robert (Gast)


Lesenswert?

Stefan U. schrieb:
> Ich habe viel mit XMega128 Chips bei 32Mhz R/C Oszillator gebastelt,
> immer mit 115200 Baud.

Die hätte ich jetzt schon zu den "ultrahohen" Baudraten gerechnet :)

Die vielverwendete 9600er Baudrate langt für die Anbindung von 
Peripherie i.d.R. doch aus und begrenzt vor allem die MC Belastung- bzw. 
ermöglicht mehr parallel laufende Verbindungen samt (mehr) zugehörigem 
Interruptcode gerade bei den bis zu 8 UARTS der Xmegas. Wenn man sich 
dann mit seiner Schaltung nicht ständig zwischen Winterfrost und 
Saunahitze bewegt ist das mit 9600 Baud eine todsichere Sache. Quarze 
sind hier nur noch für spezielle Anwendungen interessant... Für die 
gegenwärtige Einarbeitungs-Bastelphase des TE auf jeden Fall nur 
zusätzliche Fehlerquelle!

von Stefan F. (Gast)


Lesenswert?

> Für die gegenwärtige Einarbeitungs-Bastelphase des TE auf
> jeden Fall nur zusätzliche Fehlerquelle!

Allerdings. Zum Basteln reicht der R/C Oszillator normalerweise aus und 
hat den Vorteil, dass er immer und ohne zusätzliche Bauteile zuverlässig 
funktioniert.

von kondimaster (Gast)


Lesenswert?

Kondensatoren mit so langen Zuleitungen wie bei dir wirken eher 
kontraproduktiv. also lass sie besser weg.

J

von Jorim B. (Firma: None) (dschorim)


Lesenswert?

kondimaster schrieb:
> Kondensatoren mit so langen Zuleitungen wie bei dir wirken eher
> kontraproduktiv. also lass sie besser weg.
>
> J

Nur die Elkos oder auch die Keramikkondensatoren?

von Jorim B. (Firma: None) (dschorim)


Lesenswert?

Stefan U. schrieb:
> Schau mal ins Datenblatt des Spannungsregler, welche Kondensatoren der
> braucht und wo sie platziert werden müssen.

Ich verwende letztenendes keinen einzelnen Spannungsregler sonder ein 
fertigs Stroimversorgungsmodul mb102; das hat schon einen elko von Haus 
aus dabei.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

kondimaster schrieb:
> Kondensatoren mit so langen Zuleitungen wie bei dir wirken eher
> kontraproduktiv.
Ist das einfach so?
Oder kannst du diese Aussage auch begründen?

Ralf schrieb:
> Aber je geringer die Baudrate bei gegebener Taktfrequenz desto genauer
> die Justierung.
Welche Justierung?

von armab (Gast)


Lesenswert?

>Ist das einfach so?

Die erhöhte Induktivität der Leiterbahn kann eine Antennenwirkung 
verstärken. Wenn dann mit Ferrit in Reihe um die HF-Ströme klein zu 
halten.
Aber das weist du doch alles ;)

Für den TO:
http://www.ti.com/lit/ml/slyp173/slyp173.pdf
Gruß J

von Timmo H. (masterfx)


Lesenswert?

Dschorim schrieb:
> der integrierte USB-DFU-Bootloader
> http://www.atmel.com/Images/doc8429.pdf meldete sich am Rechner nicht,
Moment... die Xmegas werden doch ohne Bootloader ausgeliefert. Den DFU 
müsstest du schon selbst da rein schießen...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Die XMegas habe alle eine interne DFLL. Diese kann automatisch zur 
Laufzeit mit einem Uhrenquarz kalibriert werden und den R/C-Oszillator 
stetig nachregeln. Das ist die zuverlässigste und zugleich flexibelste 
Variante, einen XMega zu takten. Man hat alle Freiheiten bei den 
möglichen Taktraten, die komplett und ohne Einschränkung zur Laufzeit 
umgestellt werden können und das hochgenau.

von w.emil (Gast)


Lesenswert?

Knut B. schrieb:
> Man hat alle Freiheiten bei den
> möglichen Taktraten

Die hat man immer.

> die komplett und ohne Einschränkung zur Laufzeit
> umgestellt werden können

Das kann man immer.

> und das hochgenau

Das braucht man selten.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Naja, nicht ganz. Wenn man einen 4Mhz-Quarz nimmt, kann man die Frequenz 
nur in einem 4Mhz-Raster über die PLL verstellen. Bei einem 16Mhz-Quarz 
hat man nur 2 feste Grundfrequenzen und natürlich die Teiler davon. Wenn 
man die DFLL mit dem internen R/C kombiniert, dann kann man den 
Regelfaktor auch krumm benutzen und damit auf alle Frequenzen des 
R/C-Kalibrierrasters tunen. Somit kann man die Taktrate fein an die 
gewünschten Erfodernisse anpassen. Als "Abfallprodukt" hat man dann noch 
eine asynchrone RTC, die im Sleep weiterlaufen und die CPU wecken kann. 
Klar, braucht man nicht immer, ist aber nice to have und kostet nicht 
viel.

: Bearbeitet durch User
von armab (Gast)


Lesenswert?

>> Man hat alle Freiheiten bei den
>> möglichen Taktraten

>Die hat man immer.

Frei bist du, aber der Baudratenfehler auch:

http://www.gjlay.de/helferlein/avr-uart-rechner.html

>> die komplett und ohne Einschränkung zur Laufzeit
>> umgestellt werden können

>Das kann man immer.

Einige Mc lesen ihre Clock-Konfiguration beim Booten von den Beschaltung 
spezieller Eingangspins.

>> und das hochgenau

>Das braucht man selten.

Kann aber sein:
http://www.gjlay.de/helferlein/avr-uart-rechner.html

Gruß J

von Jorim B. (Firma: None) (dschorim)


Lesenswert?

Timmo H. schrieb:
> Dschorim schrieb:
>> der integrierte USB-DFU-Bootloader
>> http://www.atmel.com/Images/doc8429.pdf meldete sich am Rechner nicht,
> Moment... die Xmegas werden doch ohne Bootloader ausgeliefert. Den DFU
> müsstest du schon selbst da rein schießen...

Über PDI, oder?
was anderes lässt der Xmega C ja nicht zu...
http://www.atmel.com/Images/Atmel-8466-AVR-AT01607-XMEGA-C-Schematic-Checklist_Application-Note.pdf

von Arduinoquäler (Gast)


Lesenswert?

Jorim B. schrieb:
> Über PDI, oder?

... oder über das JTAG Interface!

von Arduinoquäler (Gast)


Lesenswert?

... ooops, vielleicht hat der kein JTAG ....

von Jorim B. (Firma: None) (dschorim)


Lesenswert?

Ich habe den Controller über einen Atmel ICE mit dem Bootloader 
versorgt,
jetz funktioniert alles. Danke für die hilfreichen Tipps.

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.