Ich glaube, ich kann den 64-MHz-PLL-Takt mit PWM verwenden, um jeden Zyklus umzuschalten und dadurch einen 32-MHz-Rechteckwellenausgang an einem IO-Pin zu erzeugen, richtig?
Gibt es einen Trick, um eine noch höhere Frequenz (mit mindestens 1 V Hub) zu erzeugen, ohne externe Komponenten zu benötigen? Kann ich zum Beispiel den 64-MHz-PLL-Ausgang selbst aus dem Chip herausholen?
Es ist nicht möglich, eine höhere Frequenz als die Systemtaktfrequenz oder die halbe Timertaktfrequenz ( PCLK/2
) einzuspeisen.
CLKO
Der Systemtakt kann über den Pin durch Setzen der entsprechenden Sicherung wie in Abschnitt 6.4 angegeben ausgegeben werden . Die höchstmögliche Systemtaktfrequenz (während sie innerhalb der Spezifikation bleibt) beträgt 16 MHz , die entweder von einer externen Single-Ended-Quelle oder im Fall des ATTiny85 von abgeleitet werden kann PCLK/4
- die Division durch 4 für die PLL kann niemals umgangen werden als in Abschnitt 6.1.5 angegeben. Wie im Datenblatt besprochen, ist die Verwendung CLKO
bei Verwendung eines externen Kristalls nicht möglich.
Alternativ ist es möglich, den Timer zu verwenden, um eine Frequenz von der Hälfte des Timertakts auszugeben – indem der Ausgang bei jedem Taktzyklus umgeschaltet wird. Die höchste spezifizierte Frequenz für den Timer-Takt beträgt 64 MHz bei Verwendung der 8x PLL von einer 8-MHz-Taktquelle (eine 16-MHz-Quelle kann auch verwendet werden, indem der /2-Vorteiler aktiviert wird). Das bedeutet, dass die maximale Frequenz mit Timer 1 32 MHz beträgt .
Es ist nicht möglich, eine höhere Frequenz als diese zu erreichen, ohne externe Komponenten zu verwenden oder die MCU außerhalb ihrer Nennspezifikationen zu betreiben.
Sie könnten eine kleine externe Taktverdopplungsschaltung (z. B. XOR-Gatter und Verzögerungskette) verwenden, je nachdem, wie stabil ein Takt ist, den Sie benötigen. Alternativ kann es einfacher sein, eine externe Taktquelle mit der gewünschten Frequenz bereitzustellen. Wenn Sie irgendeine Form der Synchronisierung benötigen, können Sie diesen höherfrequenten Takt auf eine Frequenz herunterteilen, die zum Ansteuern des MCU-Pins geeignet ist CLKI
.
Laut Datenblatt:
6.4 Taktausgangspuffer
Das Gerät kann den Systemtakt auf dem CLKO-Pin ausgeben (wenn es nicht als XTAL2-Pin verwendet wird). Um den Ausgang zu aktivieren,
CKOUT
muss die Sicherung programmiert werden. Dieser Modus ist geeignet, wenn der Chiptakt verwendet wird, um andere Schaltungen im System anzusteuern. Beachten Sie, dass die Uhr während des Zurücksetzens nicht ausgegeben wird und dass der normale Betrieb des I/O-Pins außer Kraft gesetzt wird, wenn die Sicherung programmiert wird. Interner RC-Oszillator, WDT-Oszillator, PLL und externer Takt (CLKI
) können ausgewählt werden, wenn der Takt auf ausgegeben wirdCLKO
. Quarzoszillatoren (XTAL1
,XTAL2
) können nicht für die Taktausgabe an verwendet werdenCLKO
. Bei Verwendung des System Clock Prescaler wird der geteilte Systemtakt ausgegeben.
Solange Sie also keinen Quarzoszillator verwenden, der sowohl die Pins CLKI
als auch verbrauchen würde CLKO
, sollten Sie in der Lage sein, den Taktausgang der PLL direkt über den Pin auszugeben CLKO
.
in one place it says you can output the PLL (as one of a selection of items)
- In diesem Auszug steht das nicht, es besagt, dass der Systemtakt auf dem CLKO ausgegeben wird und wenn aktiviert, nur RC, WDT, PLL und CLKI als Quelle für den MCU-Takt verwendet werden können. Wenn die PLL die Quelle des Systemtakts ist, ist sie immer die PLL-Frequenz /4, wie in Abschnitt 6.1.5 gezeigt.
Chris Stratton