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?
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).
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-EntkopplungRené 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...
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é
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
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)
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... ;-)
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.
Zusätzlich: Die USB-Buchse braucht auch noch eine Masseverbindung (und
vermutlich noch einen Pullup auf einer USB-Datenleitung um die
USB-Datenrate festzulegen).
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.
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.
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.
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...
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
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.
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)
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!
> 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.
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?
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.
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?
>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
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...
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.
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.
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.
>> 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