AT90USB646 und Clk

Hallo, ich möchte obengenannten µC verwenden. Im USB Betrieb soll er mit 16Mhz laufen.

Wenn er nicht an USB angeschlossen ist, dann soll er über eine 3V Lithiumzelle laufen.

Aber da fangen die Probleme an. Der sichere Betrieb ( 16Mhz ) ist laut Datenblatt nur ab 4.5V möglich.

Zitat

Maximum frequency is depending on VCC. As shown in Figure 30-2, the Maximum Frequency vs. VCC curve is linear between 2.7V < VCC < 5.5V

Nur worauf genau beziehen die sich ??

Anders gefragt, kann ich im Betrieb mit 3V den System Clock Prescaler auf /2 stellen und dann läuft es ?

Das dabei der Oszillator und die Timer weiter auf 16Mhz laufen ist mir klar. Die Frage ist, bezieht sich die "Safe operating area " auf den Takt für das Flash, oder auf den Takt für den Oszillator.

Ein 8Mhz Quarz kommt aus Platzgründen nicht in Frage. Alle "bezahlbaren" Quarze mit 8Mhz sind mit 6*3mm zu groß. Verwenden möchte ich einen CSTCE16M0V13L Resonator.

Leider ist ja das mit den Clock fuses so beschissen gelöst, sonst könnte man ja den internen RC Oszillator verwenden... Was Atmel da geritten hat ....

Andreas

Reply to
Andreas Ruetten
Loading thread data ...

Das bezieht sich auf den CPU-Takt, der Oszillator darf schneller laufen.

Ich denke das haengt davon ab, wie der Oszillator auf die Aenderung bzw. das Umschalten der Spannung reagiert. Wenn die Frequenz des Oszillators dabei halbwegs stabil bleibt sollte das gehen.

Nein, die Timer haengen am I/O-Takt der aus dem CPU-Takt abgeleitet wird, sie sind also "hinter" dem Prescaler.

Auf den CPU-Takt. Das Flash bezieht seinen Takt immer direkt aus dem internen RC-Oszillator (der wird AFAIK aber sowieso nur beim Schreiben benoetigt).

Mit dem RC-Oszillator kannst du hier doch nichts anfangen, der ist doch fuer USB viel zu ungenau.

Micha

Reply to
Michael Baeuerle

Fundstelle ? Oder Vermutung?

Ja, stimmt.

Hmm, OK ich meinte natürlich folgendes :

  1. USB ist dran -> externer 16Mhz
  2. USB ist ab -> interne 8Mhz

Aber das geht ja leider eben nicht.

Andreas

Reply to
Andreas Ruetten

Andreas Ruetten schrieb:

Einen 8MHz Resonator gleicher Baugröße gibts sogar bei Reichelt.

Gruß Dieter

Reply to
Dieter Wiedmann

Im Datasheet steht es nicht explizit, aber beim Quarzoszillator in Table

6-3 / Note 3 (Seite 42) ist zu lesen: | | If 8 MHz frequency exceeds the specification of the device (depends | on VCC), the CKDIV8 Fuse can be programmed in order to divide the | internal frequency by 8. It must be ensured that the resulting | divided clock meets the frequency specification of the device.

Das kann man IMHO nicht anders auslegen, als dass sich das Frequenzlimit fuer die jeweilige Spannung auf die CPU und nicht den Quarzoszillator bezieht. Ob du das Ziel dann per Fuse oder Prescaler erreichst sollte demnach egal sein.

Verstehe, war ein Missverstaendnis. Ich denke es geht prinzipiell nicht auf die triviale Weise "on-the-fly" auf einen anderen Oszillator umzuschalten (wegen dem undefinierten Phasenversatz).

Micha

Reply to
Michael Baeuerle

Am 13.04.2010 11:46, schrieb Dieter Wiedmann:

Schon, aber leider nur 0.5% Toleranz. Den oben genannten in 0.1% zu bekommen, war schon ein Akt. USB kommt mit 0.5% nicht zurecht. Den 8Mhz gibt es auch in 0.1% , aber 10000 MOQ und 16 Wo Lieferzeit.

Farnell Mouser Digikey usw haben den auch in der gewünschten Genauigkeitsklasse nicht verfügbar.

Und 8Mhz Quarze in SMD gibt es nur ( bezahlbar ) in 6*3 mm.

Andreas

Reply to
Andreas Ruetten

Am 13.04.2010 12:33, schrieb Michael Baeuerle:

Nicht ganz, es geht tatsächlich ja nur die Fuse, da ich den Prescaler ja nur zur "Laufzeit" umstellen kann , und die Zeit voher läuft er ja mit 16Mhz. Aus dem Sumpf kommt mann mit am Bart ziehen leider nicht weiter...

Aber masl nachrechnen, vileicht klappt es ja mit 2Mhz, dasnn könnte ich ja die Fuse /8 immer drin lassen.

Naja, der AT90USB162 kann genau das!!!!! Der kann zwischen extern und intern on thy fly umschalten. Also können tun die das schon bei Atmel, aber warum die das nur bei ein paar Typen machen .........

Andreas

Reply to
Andreas Ruetten

Richtig, aber wenn du beim Boot 5V haettest wuerde es so auch gehen. Es ging ja darum, ob der Oszillator auch bei 3V mit 16MHz laufen darf - und das darf er.

Das Datasheet sagt: | | The CKDIV8 Fuse determines the initial value of the | CLKPS bits [in CLKPR].

D.h. du kannst die Fuse brennen damit er mit 8MHz loslaeuft und dann zur Laufzeit bei 5V auf 16MHz umschalten indem du CLKPS=0000 schreibst. Das Problem ist eher die Rueckwaertsrichtung, du musst wieder auf 8MHz sein _bevor_ die 5V weggehen.

... weil es nicht trivial ist ;-)

Spekulation: In deinem AT90USB646 ist halt wohl irgendeine aeltere "Makrozelle" drin, die mit dem Schaltglitch nicht klarkommen wuerde und die dem AT90USB162 fehlt.

Micha

Reply to
Michael Baeuerle

Am 12.04.2010 20:10, schrieb Andreas Ruetten:

Wenn da die Schmerzen zu groß werden, warum nimmst Du nicht was anderes. Z.B. STM32F103RBT6. Läuft immer mit 3.3 V, ist schneller, kann mit einem externen 16 MHz Quarz betrieben werden, und ist obendrein noch billiger.

--
Mit freundlichen Grüßen

Frank-Christian Krügel
Reply to
Frank-Christian Krügel

Hallo Andreas!

Die USB64x sind momentan schwer zu bekommen, und oft nur ab MQ 450. Du solltest also damit rechnen, auf den USB1287 ausweichen zu müssen. Ein paar von den Dingern (646 oder 647) habe ich evtl. noch abzugeben, dass klärt sich in den nächsten Wochen.

Gruß Thorsten

--
PGP welcome!
Thorsten online: http://www.ostermann-net.de/electronic
 Click to see the full signature
Reply to
Thorsten Ostermann

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.