Nabend.
Kennt hier jemand den DAC im xmega E? Ich musste feststellen, dass der
DAC-Ausgang anscheinend High-Z geht, sobald man in den power-save sleep
wechselt. Geht man nur in den idle sleep, funktioniert er durchgehend.
Braucht ein DAC eine durchgehend aktive clock domain, um überhaupt zu
funktionieren?
Jan schrieb:> Braucht ein DAC eine durchgehend aktive clock domain, um überhaupt zu> funktionieren?
Allgemein eigentlich nicht. Ob ein spezieller DAC einen Takt braucht,
das dürfte im Datenblatt stehen...
Der CMOS-Ausgang kann in einem der zwei (bzw. drei) Zustände bleiben,
ohne dabei Strom zu verbrauchen. Aber wie soll eine analoge Schaltung
ohne Strom funktionieren? Schon allein die V_Ref braucht Strom.
Georg M. schrieb:> wie soll eine analoge Schaltung> ohne Strom funktionieren? Schon allein die V_Ref braucht Strom.
Es war nicht von "ohne Strom" die Rede. Sondern vom Betrieb im
Power-Save Modus. Abgesehen davon gibt es diverse analoge Schaltungen
(inclusive Referenzspannung) die natürlich im Power-Save noch gehen.
Z.B. der Brown-Out Detektor.
Aber ich verstehe den TO nicht. Was er fragt, sollte doch im Handbuch
stehen. Inklusive einer Anforderung an die Höhe eines evtl. benötigten
Clocks (was ich aber nicht glaube).
Axel S. schrieb:> Es war nicht von "ohne Strom" die Rede.
Ja, es war von "ohne Clock" die Rede. Und das führte zum Unverständnis.
Axel S. schrieb:> Aber ich verstehe den TO nicht.
Ich schon. Deswegen mein Kommentar.
Jan schrieb:> Kennt hier jemand den DAC im xmega E?
Kenn ich zwar nicht "persönlich", aber eben deswegen hat es mich jetzt
mal interessiert.
> Ich musste feststellen, dass der> DAC-Ausgang anscheinend High-Z geht, sobald man in den power-save sleep> wechselt.
Sicher High-Z? Nicht eher High?
> Braucht ein DAC eine durchgehend aktive clock domain, um überhaupt zu> funktionieren?
Das kommt wohl drauf an. Das Ding hat eine schaltbare S&H-Stufe (siehe
Screenshot). Ich würde mal folgendes vermuten: wenn die ausgeschaltet
ist, braucht man wirklich einen Takt. Ist sie an, dann nicht, weil dann
wird der Ausgang vom letzten Holdwert dieser Stufe bestimmt.
Dieter R. schrieb:> Woher kommt denn die Grafik? Im "AVR Xmega E Manual" finde ich sie> nicht. Da sind ZWEI separate DACs eingezeichnet, ohne S/H.
Die einschlägige AN zum DAC. Link habe ich gerade nicht mehr parat,
sollte sich aber bei MC finden lassen. Wenn man sucht (so wie auch ich
es bloß getan habe)...
Davon unabhängig sollte sich diese schaltbare Stufe auch irgendwo in den
DBs wiederfinden lassen. Wenn schaltbar, sollte es auch irgendein Bit
dafür geben, über das man die schalten kann.
Das habe ich jetzt nicht weiter überprüft.
c-hater schrieb:> Die einschlägige AN zum DAC. Link habe ich gerade nicht mehr parat
Das tatsächlich nicht mehr, aber das runtergeladene Dokument war noch in
meinem Papierkorb.
Ich häng's mal an.
Naja, wenn man in den sleep geht, kann man im Voltmeter gut sehen, wie
die Spannung langsam (ca. 30mV/s) Richtung VCC/2 wegdriftet. Sobald der
sleep verlassen wird, springt die Spannung wieder dahin, wo wie
hingehört.
Der sleep-Block sah (in PseudoCode) so aus:
1:
sleep(powersave)
delayms(1000)
goto 1
Aus dem sleep kam er alle 5 Sekunden via RTC.
Dass der DAC durchgehend Strom braucht, ist mir schon klar. Aber die
Clock zieht auch ne Menge, und die hätte ich deshalb gerne abgeschaltet.
Vielleicht war der einfach nicht richtig ausgereift.
Jan schrieb:> Naja, wenn man in den sleep geht, kann man im Voltmeter gut sehen, wie> die Spannung langsam (ca. 30mV/s) Richtung VCC/2 wegdriftet. Sobald der> sleep verlassen wird, springt die Spannung wieder dahin, wo wie> hingehört.
Das würde zu einer S/H Stufe passen, der man den Takt abgeschaltet hat.
Es ist allerdings nicht wie im Eröffnungspost geschrieben:
Jan schrieb:> DAC-Ausgang anscheinend High-Z> Dass der DAC durchgehend Strom braucht, ist mir schon klar. Aber die> Clock zieht auch ne Menge, und die hätte ich deshalb gerne abgeschaltet.
Warum liest du dann nicht endlich mal das verdammte Handbuch ?
Wenn der DAC einen Takt zum Funktionieren braucht, dann steht das
sicher da drin. Entweder im Kapitel über den DAC oder über die
Schlafmodi. Dann kannst du den Schlafmodus wählen, der die meisten
Einsparungen bringt, ohne den DAC zu beeinflussen.
Das verstehe ich nicht. Du hast die Information schon, die du
suchst. Du müßtest bloß lesen ...
c-hater schrieb:> Die einschlägige AN zum DAC.
Das ist XMEGA. Bei XMEGA E sieht es lt. allgemeiner Beschreibung anders
aus. Man müsste wohl den konkreten Typ kennen, den hat uns der TO aber
nicht verraten. Sofern er wirklich einen E hat.
Axel S. (a-za-z0-9) schrieb:
> Warum liest du dann nicht endlich mal das verdammte Handbuch ?
Siehe oben, ich finde in dem verdammten Handbuch keine Beschreibung, was
im Sleep mit dem DAC passiert, bloß, dass seine Clock abgeschaltet ist.
Ich habe aber auch den Prozessor nicht.
Meine persönliche und generelle Erfahrung dazu: es ist risikoreich, zu
behaupten, dass etwas spezielles schon in der
Atmel/Microchip-Dokumentation erläutert wäre. Oft hilft nur eine (meist
längere) Diskussion mit dem indischen Support.
Einfach mal davon auszugehen, dass ich das Handbuch nicht gelesen habe,
ist schon ziemlich unverschämt. Wie sonst hätte ich denn bitte wissen
sollen, welche Register ich wie beschreiben muss, damit überhaupt was
ausgegeben wird?
Die Sektion des DACs ist halt leider ziemlich kurz und in der AN steht
auch leider nichts dazu drin.
Die E sind alle identisch. Gibt ja auch nur 3 Stück. 8 16 und 32, die
sich nur vom Speicherausbau unterscheiden. Ich setze den 8er ein.
Dieter R. schrieb:> c-hater schrieb:>>> Die einschlägige AN zum DAC.>> Das ist XMEGA.
Es war bei MC jedenfalls vom XMEGA E aus verlinkt. Sollte also auch dazu
passen.
Dieter R. schrieb:> Axel S. (a-za-z0-9) schrieb:>> Warum liest du dann nicht endlich mal das verdammte Handbuch ?>> Siehe oben, ich finde in dem verdammten Handbuch keine Beschreibung, was> im Sleep mit dem DAC passiert, bloß, dass seine Clock abgeschaltet ist.> Ich habe aber auch den Prozessor nicht.
Zwar keine direkte Beschreibung zum Sleep, aber beim Bit "DAC" im
Register für "Power Reduction" steht:
"Setting this bit stops the clock to the DAC. The DAC should be disabled
before stopped."
Das klingt, als ob man generell den DAC abschalten soll, bevor sein
Takt gestoppt wird.
c-hater schrieb:> sollte sich aber bei MC finden lassen.> sollte sich diese schaltbare Stufe auch irgendwo> Wenn schaltbar, sollte es auch irgendein Bit> Sollte also auch dazu passen.
Ist halt ziemlich viel "sollte".
Um die Sache mal wieder auf ein konstruktives Level zu bringen:
Würde der Idle-Mode mit geringerer Taktfrequenz (umschalten auf internen
32kHz-Takt) nicht reichen?
Rolf M. schrieb:> Ist halt ziemlich viel "sollte".
Ja, so ist das, wenn Datenblätter nix taugen.
Inzwischen habe ich mir mal die Registerbeschreibungen angesehen. Ich
würde mal auf Bit1 in CTRLA tippen. Wenn überhaupt irgendeins, dann das.
Die Beschreibung ist allerdings eher dürftig. MC-Standard halt...
c-hater schrieb:> Rolf M. schrieb:> Die Beschreibung ist allerdings eher dürftig. MC-Standard halt...
Support-Case initiieren. Vielleicht gibt es aus Indien ja noch ein paar
Vorschläge dazu. Oder schlussendlich ein neues Erratum. Wäre nett, wenn
der TO uns anschließend das Ergebnis mitteilen würde, damit wir alle was
lernen.
Bit 1 LPMODE löst dieses Problem leider nicht. Idle auf 32 kHz müsste
ich mal ausprobieren, aber ohne Details über den inneren Aufbau könnte
sich dieser Trick noch als Bumerang erweisen.
Naja, oder ich lass es so wie es ist und nehme für wirkliche low power
Anwendungen einfach einen externen DAC. Zum Glück brauche ich das im
jetzigen Projekt nicht. Es fiel mir nur auf, da ich zum ersten Mal mit
dem DAC richtig gearbeitet habe und deshalb erstmal unbedingt alles
mögliche ausprobieren musste. :D
Jan schrieb:> Bit 1 LPMODE löst dieses Problem leider nicht.
Das Bit einfach nur zu setzen, würde das Problem vermutlich nicht lösen,
selbst dann nicht, wenn es tatsächlich das tut, was ich vermute, was es
tut.
Da wären dann schon noch ein paar mehr Vorkehrungen zu
treffen/Randbedingungen einzuhalten. Das würde allerdings davon
abhängen, wie genau der DAC gefüttert wird. Code hast du ja nicht
geposted, oder?
Jan schrieb:> aber ohne Details über den inneren Aufbau könnte> sich dieser Trick noch als Bumerang erweisen.
Versuch macht kluch, zumindest siehts im DB so aus, als ob der Verbrauch
vom einstelligen mA und den einstelligen µA-Bereich sinkt (eigentlich
plausibel, weil von 30MHz auf 30kHz ist's auch ein Tausendstel).
Kann aber auch sein, dass bei so niedrigem Takt schon das eine oder
andere Bit in der DAC-Ausgabe flöten geht - wenn's denn wirklich die
S&H-Stufe ist.
Euro schrieb:> Kann aber auch sein, dass bei so niedrigem Takt schon das eine oder> andere Bit in der DAC-Ausgabe flöten geht - wenn's denn wirklich die> S&H-Stufe ist.
Wenn die S/H-Stufe wirklich vorhanden ist. Zweifel sind angebracht,
klären kann man das (wenn überhaupt) nur durch Kontakt mit dem Support.
Im "XMEGA A MANUAL", das von sich behauptet "contains complete and
detailed description of all modules included in the Atmel®AVR®XMEGA®A
microcontroller family"
ist mit dem Adress-Offset 4 ein TIMCTRL-Register erwähnt, das genau
dieses Verhalten steuern soll.
Im XMEGA A3U-Manual ist diese Adresse aber reserved, kein Register.
Im ATxmega-E-Manual genauso reserved.
Nichts genaues weiß man nicht und die Beschreibung in der Application
Note, die c-hater ausgegraben hatte (da ist das TIMCTRL-Register
erwähnt) widerspricht mindestens zwei verschiedenen Datenblättern.
Dieter R. schrieb:> Zweifel sind angebracht,> klären kann man das (wenn überhaupt) nur durch Kontakt mit dem Support.
Naja, man kann dem Projekt zuliebe auch die Taktfrequenz einfach mal auf
32kHz konfigurieren, einen DAC-Wert generieren und aus Jux noch den
Controller in den Idle schicken. Zumindest mit nem Oszi sollte man ja
sehen, ob ein statischer Wert oder ein kleiner Sägezahn bei rumkommt.
Ich hab den E leider nicht da, sonst hätte ich mir die halbe Stunde Mühe
gemacht (und beim A kann die Sache wirklich auch anders aussehen).